2017-09-21 9 views
0

현재 Python 스크립트를 실행해야하는 init.d 스크립트에 문제가 있습니다. 필자는 Python 파일과 init 스크립트에 대한 사용 권한을 보장했습니다. Init 스크립트는 파이썬 실행 가능 라인을 echo "test" > /tmp/test.txt으로 바꾼다면 잘 작동합니다.Init.d 스크립트가 Python 스크립트를 실행할 수 없습니다.

파이썬 파일은 라인을 인쇄하고 1000 회 반복합니다.

#!/bin/sh 
# 
# /etc/init.d/incapsula-loggrabber 
# init script for Incapsula. 
# generated by 'myself'. 
# 
# chkconfig: 345 93 63 
# description: Incapsula Logging Script 
# 

. /etc/init.d/functions 

NAME=incapsula-loggrabber 
DESC="Incapsula Script to Push logs to Splunk" 
PYTHON="/bin/python" 
PIDFILE="/var/run/incapsula-loggrabber.pid" 
PYTHON_FILE="/root/inittest.py" 

do_start() { 
    echo Starting Incapsula Script... 
    echo $PIDFILE is the file where pid resides 
    sudo python $PYTHON_FILE & 
    RETVAL=`echo $?` 
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$NAME 
} 

do_stop() { 
    echo $PIDFILE is removed 
    kill `cat $PIDFILE` 
    RETVAL=`echo $?` 
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$NAME 
} 

do_status() { 
     if [ -e $PIDFILE ]; then 
     echo $NAME is running, pid=`cat $PIDFILE` 
     else 
     echo $NAME is NOT running 
     exit 1 
     fi 
} 

case "$1" in 
    start) 
     do_start 
     ;; 
    stop) 
     do_stop 
     ;; 
    restart) 
     do_stop 
     do_start 
     ;; 
    status) 
     do_status 
     ;; 
    *) 
     echo "Usage: $0 {start|stop|status|restart}" 
esac 

exit 0 

이 초기화 스크립트를 작동 시키려면 누락되었거나 수정해야 할 것이 있습니까?

+0

실제 문제가 무엇입니까 ? 오류 메시지? – dlmeetei

+0

파이썬 스크립트가 실행되고 있지 않지만 init 스크립트에서 호출 된 프로세스를 볼 수 있습니다. 파이썬 스크립트 F = 오픈 오기 시간 ("/ hfapp/프론트 엔드/initest.txt", "+ W") 범위의 I (1000) f.write ("이것은 광고가 % d이며 이 스크립트는 텍스트 파일에 써야하지만 스크립트에 따라 추가하지는 않습니다. – Momooo

+0

얼마나 오랫동안 기다리고 계십니까? (예 : % (i + 1)) time.sleep (5) f.close() 이 스크립트는 텍스트 파일에 작성해야합니다. ? 1000 회 반복하고 매 5 초마다 잠을 자면 파일을 완성하고 쓰는 데 어느 정도 시간이 걸릴 것입니다 – lxop

답변

0

문제가 해결되었습니다. 먼저 실행될 코드와/var/run 아래에 프로세스 ID를 쓰는 등의 비하인드 코드를 실행했습니다. 파이썬 스크립트 당.

echo `/bin/python /root/inittest.py ` & echo $! > $PIDFILE

관련 문제