2016-01-24 70 views
1

我使用的是Raspbian一個樹莓派巨蟒文件,我嘗試這樣做:Linux後臺程序不能運行

等/ init.d下

... 
DIR=/var/www/MDH/python 
DAEMON=$DIR/myserv.py 
DAEMON_NAME=myserv 
DAEMON_USER=pi 
PIDFILE=/var/run/$DAEMON_NAME.pid 
... 
do_start() { 
echo "Starting system do_start $DAEMON_NAME daemon" 
start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --user $DAEMON_USER --chuid $DAEMON_USER --startas $DAEMON -- $DAEMON_OPTS 
echo "Started $DAEMON" 
} 
do_stop() { 
... 
ccase "$1" in 

start|stop) 
    do_${1} 
    ;; 

restart|reload|force-reload) 
    do_stop 
    do_start 
    ;; 

status) 
    status_of_proc "$DAEMON_NAME" "$DAEMON" && exit 0 || exit $? 
    ;; 

*) 
    echo "Usage: /etc/init.d/$DAEMON_NAME {start|stop|restart|status}" 
    exit 1 
    ;; 

esac 
exit 0 
製作的文檔 myservice.sh

當我運行sudo service /etc/init.d/myservice.sh start的提示就可以了:

Starting system do_start myserv daemon 
. ok 
Started /var/www/MDH/python/myserv.py 

但如果我這樣做須藤服務/etc/init.d/myservice.sh狀態我的腳本不運行:

[FAIL] /var/www/MDH/python/myserv.py is not running ... failed! 

如果我嘗試使用python /var/www/MDH/python/myserv.py運行python腳本,它工作確定。

任何想法來實現日誌或調試更好的腳本。

+0

對不起我的第一個問題我錯了標題「......不能運行python文件」 – MadCat

+0

您可以編輯您的原始問題來澄清它,而不是使用註釋。此外,'service'只運行相應的腳本,您可以運行'/etc/init.d/foo start'而不是'service foo start',這樣就可以進一步減少重現問題所需的代碼。也就是說,到目前爲止您還沒有提供足夠的信息,請參閱發佈指南。 –

+0

我最近開始使用linux,而且我不太瞭解......這就是爲什麼我編寫任何想法來更好地調試腳本併發布更詳細信息的原因。謝謝你的提示'服務foo開始' – MadCat

回答

0

我提出在用戶文件夾中的Python腳本: \家\ PI \

執行權限,我的劇本 搭配chmod + E myserv.py

也是我加入myservice.sh:

#------------------------------------------------------------- 
#! /bin/sh 
### BEGIN INIT INFO 
# Provides: MDH daemon 
# Required-Start: $all 
# Required-Stop: 
# Default-Start: 2 3 4 5 
# Default-Stop: 0 1 6 
# Short-Description: daemon MDH 0.1 
# Description: bla bla bla... MDH. 
### END INIT INFO 

現在 服務myservice.sh啓動

的python腳本的工作就OK了nd狀態,停止和重新啓動運行良好。 爲什麼在/var/www/MDH/python/myserv.py文件夾中不起作用?