我有一个自定义的 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]
?