Linux Ubuntu 14.04〜/app /serve.pyにスクリプトがあります
このフォルダで実行する必要があります。シェルで私はするかもしれません
> cd ~/app && python serve.py
そしてそれはサーバーを実行します
バックグラウンドで起動するサーバーで実行する必要があります。このコマンドを追加しようとしましたcd ~/app && python serve.py ~
etc/rc.local(およびetc/init.d/rc.local)にありますが、起動しません。
何が悪いのですか?
/etc/rc.localにcd ~/app && python serve.py
を追加する代わりに、パス全体を入力してみてください。どういうわけか、initプロセスが〜がホームディレクトリであることを認識していることを期待していますが、initはrootとして開始されます。 initはrootで始まるため、/
でホームディレクトリではなくアプリディレクトリを探します。ホームディレクトリへのパスを使用して、〜を取り除きます。
/home/whitecolor/app/serve.py
を/etc/rc.local
に追加してみてください。 (パスウェイディレクトリを見つけるにはpwd
。)スクリプトの先頭に#!/usr/bin/python
を追加して、serve.pyスクリプトの前にあるpython
を削除します。 (通常の場所にインストールされていない場合に備えて、パスを見つけるにはwhich python
を入力します)
編集:あなたは「バックグラウンドで実行する」と言いました、そして私はそれを逃しました。バックグラウンドでコマンドを実行するには、コマンドの後に&
を追加します。したがって、上記のコマンドをバックグラウンドで実行するには、次のようにします。/home/whitecolor/app/serve.py &
Initは通常、ジョブを開始してバックグラウンドで実行するためにバックグラウンドシンボルを必要としません。
DrDRの優れた提案は、デフォルトでバックグラウンドで実行されるため、cron起動時のコマンドの後に同じ&
処理を必要としないでしょう。
私はこれを試す必要がなかったが、@ rebootで始まる行と同様の行を以下に追加することにより、cronを介してシステムの起動時にスクリプトを実行できるようです。
#m h dom mon dow command
1 * * * * someHourlyCommand
@reboot python /home/<username>/app/serve.py
ディレクトリへのcdを排除するために、コマンドを少し変更したことに注意してください。あなたの状況は異なるかもしれないので、あなたのために働くことをしてください。