次の基本構造を持つカスタム Upstart ジョブがあります。
description "ulfs_bar_example"
author "Ulf"
# Only run at runlevel 2 (Default multiuser)
start on runlevel 2
stop on runlevel [!2]
# Keep it alive
respawn
chdir /storage/_foo/bar
exec sudo -u the_user /storage/_foo/venv/bin/python /storage/_foo/bar/the_app.py
Ubuntu 14.04.5 LTS
これはのインスタンス上で実行されますVirtualBox 5.0.26
。
/storage/_foo/
ゲストディスクに存在する
bar/
ホストシステム(またUbuntu 14.04.5 LTS
)に存在し、ゲスト追加そしていくつかのシンボリックリンク/storage/_foo/
$ cd /storage/_foo
$ ls -alF
...
lrwxrwxrwx 1 the_user code 43 aug 18 14:23 bar -> /mnt/bar_at_host
...
次のようにゲストを起動すると、問題なくジョブを開始できます。
$ sudo start ulfs_bar_example
しかし、conf ファイルに記載されているように、通常の起動時にランレベル 2 に入ったときにジョブが開始されるようにしたいのですが、ジョブが開始されないため、マウントに何らかの問題があるようです。dmesg
次のメッセージが表示されます。
[ 8.793493] init: Failed to spawn ulfs_bar_example main process: unable to change working directory: No such file or directory
以下の変更を試みましたが、成功しませんでした。
start on runlevel 2
これに似たさまざまなもの:
start on (local-filesystems and runlevel 2)
何が間違っているのでしょうか? どうすれば修正できますか?
答え1
システムがランレベル 2 に入っていて、別のランレベルに入っていないことは確かですか? 試しましたかstart on runlevel [2345]
?