2012-06-26 3 views
1

로컬 git 저장소에서 "git pull"을 수행하고 daemontools "svscan"을 시작하기 위해 upstart conf를 작성하려고합니다. 데몬 프로세스가 git 저장소에있는 최신 버전의 파일을 사용하기 때문에이 순서대로 수행 할 필요가 없습니다. Upstart - 디렉토리로 이동하여 git pull하고 daemontools를 실행하십시오.

내가 시도 :

start on runlevel [12345] 
respawn 
pre-start script 
    cd /scripts 
    git pull 
end script 
exec /command/svscanboot 

도 :

start on runlevel [12345] 
respawn 
chdir /scripts 
exec git pull 
exec /command/svscanboot 

그러나이 작품의도를. 나는 upstart에게 다른 디렉토리로 이동 한 다음 세 번째 명령을 실행하기 전에 명령을 실행하는 방법에 대한 도움을 찾고 있습니다.

답변

4

당신 수하려고이 (나는 그것이 작동하려면 sudo는 내 자식 풀을 포장했다?) :

start on runlevel [12345] 

respawn 

pre-start script 
    export HOME="/home/user" 
    cd $HOME/scripts/ 
    exec sudo -u user git pull 
end script 

script 
    export HOME="/home/user" 
    cd $HOME/commands/ 
    exec sudo -u user svscanboot >> /var/log/svscanboot.log 2>&1 
end script 
2

를 사용하는 대신 sudo를 -u, 당신은

start on runlevel [12345] 

respawn 

setuid user 

pre-start script 
    cd /home/user/scripts/ 
    exec git pull 
end script 

script 
    cd /home/user/commands/ 
    exec svscanboot >> /var/log/svscanboot.log 2>&1 
end script 
+0

확실하지 setuid를 할 수 있습니다 왜,하지만 내 시스템 (amazon의 표준 리눅스 이미지가있는 EC2 서버)에서 "setuid whatever"행을 추가하면 "알 수없는 작업"이 유효한 구문 인 것처럼보고합니다. / –

관련 문제