web-dev-qa-db-ja.com

起動時にUpstartユーザージョブを実行する

Ubuntuサーバー11.04を実行しています。説明されているように、Upstartユーザージョブを作成しました ここ

/home/myuser/.init/sensors.confに次のファイルがあります。

start on started mysql
stop on stopping mysql


chdir /home/myuser/mydir/project
exec /home/myuser/mydir/env/bin/python /home/myuser/mydir/project/manage.py sensors

respawn

respawn limit 10 90

myuserとして、ジョブを開始、停止、および再ロードできます-完全に機能します

$ start sensors
sensors start/running, process 1332
$ stop sensors
sensors stop/waiting

問題は、mysqlの起動時に、起動時にジョブが自動的に開始されないことです。新たに起動した後、mysqlは実行されていますが、私のsensorsジョブは実行されていません。

奇妙なことに、ジョブは起動時に開始されませんが、Sudoを使用してmysqlを再起動すると、実際にジョブが開始されます。次のコマンドは、新しいスタートアップからmyuserとして実行されます。

$ status sensors
sensors stop/waiting
$ Sudo restart mysql
mysql start/running, process 1209
$ status sensors
sensors start/running, process 1229

Upstartユーザージョブのドキュメントはかなり制限されています。システムの起動時にユーザージョブを自動的に開始させる正しい方法は何ですか?

rc.localに何かを投げて開始するか、sensors.conf/etc/initに移動できることはわかっていますが、Upstartだけを使用してそれを行う方法があるかどうか知りたいです。

8
dgel

問題は、ユーザーがinitctlコマンドのいずれかを実行してUpstartセッションを作成するまで、ユーザージョブがUpstartに読み込まれないことです。

詳細については http://bradleyayers.blogspot.com.au/2012/04/enabling-upstart-user-jobs-to-start-at.html で説明し、また問題を回避するUpstartジョブ。

8
bradley.ayers