2009-09-21 2 views
0

우리는 리눅스 데몬을 c로, bash 스크립트로 시작합니다. 일부 구성 파일 오류로 인해 디먼이 시작되지 않는 경우도 있지만 스크립트는 디먼이 성공적으로 시작되었다고보고합니다. 스크립트 스 니펫이 아래와 같이 표시됩니다. 누군가 스크립트에서 잘못된 점을 알 수 있습니까?리눅스 데몬의 상태를 알려주는 방법

... 
case "$1" in 
start) 
echo -n "Starting Demo Daemon: " 
sudo -u demouser env DEMO_HOME=$DEMO_HOME /usr/local/demouser/bin/democtl startup > /dev/null 2> /dev/null 
if [ "$?" = "0" ]; then 
    echo_success 
else 
    echo_failure 
fi 
echo 
;; 
... 

고마워요!

+1

그것은 우리가 그것을 어떻게해야 무엇 아무 생각이 없을 때 스크립트 뭐가 잘못 됐는지 알아 내기 위해 정말 어렵습니다. – Fragsworth

+0

이것은 문제와는 관계가 없지만 다음과 같이 리다이렉션을 할 수 있습니다 :'/ dev/null 2> & 1' –

답변

6

나는 스크립트에 아무런 문제가 없다고 느낀다. 적절하게 시작하지 못했을 때 스크립트가 메시지를 표시하지 않으면 0이 아닌 종료 상태를 리턴하는 데몬의 책임이다. (나는 그렇게 생각한다)

+1

'sudo'와'env' 둘 다 종료 코드를 보존하기 때문에 실제로는 데몬 자체 일 것입니다 올바른 코드를 설정하지 않습니다. –

0

당신의 상태를 실행 얻을 수 있도록 스크립트에 다음 줄을 추가 할 수 있습니다 리눅스 데몬

status=`ps -aef |grep "\/usr\/local\/demouser\/bin\/democtl" |grep -v grep|wc -l` 
if [ "$status" = "1" ]; then 
    echo_success 
else 
    echo_failure 
fi 
관련 문제