我正在运行Ubuntu服务器11.04。 我已经创build了这里描述的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作业不是。
奇怪的是,尽pipe作业不是在启动时开始的,但如果我使用sudo来重新启动mysql它确实启动了我的工作。 以下命令以全新的启动forms作为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。
问题是在用户通过运行其中一个initctl命令来创build一个Upstart会话之前,用户作业不会被加载到Upstart中。
看看像/etc/init/mysql.conf和http://upstart.ubuntu.com/cookbook/#start-on ,在我看来,你应该改变你的start on像这样的东西:
start on (mysql and runlevel [2345])
我不确定我是否同意新贵缺less文档,但是我有时候确实对文档有一定的理解。 我通常只是尝试和错误,直到它的工作。 上面的解决scheme实际上可能是矫枉过正的…像这样简单的事情可能就足够了:
start on mysql