我正在运行 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
Run Code Online (Sandbox Code Playgroud)
因为myuser我可以正常启动、停止和重新加载工作 - 它运行良好:
$ start sensors
sensors start/running, process 1332
$ stop sensors
sensors stop/waiting
Run Code Online (Sandbox Code Playgroud)
问题是作业在启动时不会在启动时自动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
Run Code Online (Sandbox Code Playgroud)
Upstart 用户作业的文档非常有限。在系统启动时自动启动用户作业的正确技术是什么?
我知道我可以扔东西rc.local来启动它,或者我可以移动我的sensors.conf,/etc/init但我很好奇是否有办法只使用 Upstart 来做到这一点。
小智 8
问题是,在用户通过运行其中一个initctl命令创建 Upstart 会话之前,用户作业不会加载到 Upstart 中。
我已经在http://bradleyayers.blogspot.com.au/2012/04/enabling-upstart-user-jobs-to-start-at.html上更详细地描述了它,并且还编写了一个 Upstart 工作来解决问题。
| 归档时间: |
|
| 查看次数: |
6666 次 |
| 最近记录: |