우분투 서버 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
으로 myuser
는 완벽하게 작동를 미세 나는 정지를 시작하고 작업을 다시로드 할 수 있습니다 :
$ start sensors
sensors start/running, process 1332
$ stop sensors
sensors stop/waiting
문제는 부팅시 작업이 자동으로 시작되지 않는다는 것 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
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 작업을 작성했습니다. 문제.
답변
같은 소스를 보면 /etc/init/mysql.conf
및 http://upstart.ubuntu.com/cookbook/#start-on 이 날 것으로 보인다 당신이 당신의 변경해야 start on
이런 일에 라인을 :
start on (mysql and runlevel [2345])
나는 upstart에 문서화가 부족하다는 데 동의하지 않지만 때로는 문서를 이해하는 데 어려움을 겪고 있습니다. 나는 보통 작동 할 때까지 시행 착오를합니다. 위의 해결책은 실제로 과잉 일 수 있습니다 … 이것이 충분할만큼 간단한 것 :
start on mysql