2014-09-02 3 views
1

루트가 아닌 사용자로서 upstart를 사용하여 nodejs 어플리케이션을 실행하려고합니다. 스크립트의
그러나 어떻게 든 부분은 실행되지 않습니다 : 예를 들면 : 나는 (예를 들어 아래) 루트 사용자처럼 실행하면 NODE_ENV라는 결코 극복UPSTART 스크립트 비 루트가 작동하지 않습니다

  1. /라고 할 수있는 유일한 방법은 "sudo initctl stop pdcapp"을 함께
  2. 설정
  3. sudo nameofApp start|stopsudo initctl stop nameofApp을 전화했을 때 나는 그것이 심지어
  4. 을 시작하지 않을 비 루트 사용자처럼 runit하려고하면
  5. 가 사전 정지 스크립트는 로그 파일
  6. 에 표시하지 않습니다 작동하지 않을 것입니다

이 작업을 더 쉽게 수행 할 수있는 더 쉬운 방법은 아닙니다 (systemd). 나는 다양한 튜토리얼을 살펴 봤는데 분명히 이것이 어떻게 수행되었는지 보여줍니다. 그래서 나는 무엇을 여기에서 놓치고 있냐?

그렇지 않으면 내가 로그 파일에 아무 것도 얻을, 내가 응용 프로그램을 중지 할 때 나는이 얻을의/var/로그/메시지/등/초기화/

env FULL_PATH="/srv/pd/sept011100/dev" 

env NODE_PATH="/usr/local/nodeJS/bin/node" 
env NODE_ENV=production 

start on filesystem or runlevel [2345] 
stop on [!2345] 

script 
    export NODE_ENV #this variable is never set 
    echo $$ > /var/run/PD.pid 
    cd $FULL_PATH 

    # the command below will not work 
    #exec sudo -u nginx "$NODE_PATH server.js >> /var/log/PD/pdapp.log 2>&1" 
    exec $NODE_PATH server.js >> /var/log/PD/pdapp.log 2>&1 
end script 

pre-start script 
    echo "[`date`] (sys) Starting" >> /var/log/PD/pdapp.log 
end script 

pre-stop script 
    rm /var/run/pdapp.pid 
    echo "[`date`] (sys) Stopping" >> /var/log/PDC/pdapp.log 
end script 

에서의 .conf 파일입니다

Sep 2 18:23:14 547610-redhat-dev2 init: pdcapp pre-stop process (6903) terminated with status 1 
Sep 2 18:23:14 547610-redhat-dev2 init: pdcapp main process (6899) terminated with status 143 

어떤 아이디어 왜 (그것을 사용에도 불구하고, 나는 6.5

답변

1

레드햇들이 갑자기 출세에 기여하지 않기 때문에 버그의 아마 가득 갑자기 출세의 슈퍼 이전 버전을 가지고 레드햇 실행 해요 Fedo을이 작동하지 않습니다 ra는 RHEL 6이 출시 된 직후 systemd로 바뀌 었습니다.