我正在运行ubuntu服务器11.04.我已经创建了一个Upstart用户作业,如
here所述.
我在/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
作为我的用户,我可以启动,停止并重新加载工作,它完美地工作:
$start sensors sensors start/running,process 1332 $stop sensors sensors stop/waiting
问题是当MysqL启动时,作业不会在启动时自动启动.重新启动后,MysqL正在运行,但我的传感器工作却没有.
奇怪的是,虽然作业不是在启动时开始的,但是如果我使用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来完成它.
问题是在用户通过运行其中一个initctl命令创建Upstart会话之前,用户作业不会加载到Upstart中.
我在http://bradleyayers.blogspot.com.au/2012/04/enabling-upstart-user-jobs-to-start-at.html更详细地描述了它,并编写了一个解决问题的Upstart工作.