在init.d中后台执行Python脚本
为了和我的iPhone互动,我写了一个Python脚本,通过一个叫做“socket”的东西发送和接收数据。这个脚本必须在emule之后启动才能正常工作。
我想到了这样的做法:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/bin/amuled
WEB=/usr/local/bin/amuleweb
NAME=amuled
DESC=amuled
RUNAMULE=no
USER=piros
# ADDED FOR iPhone
SOCKET= /home/piros/amule_scripts/aMuleSocket/aMuleSocket.py
#
然后
case "$1" in
start)
echo -n "Starting $DESC: "
su $USER -c "$DAEMON -f"
while ! netstat -l -n -p -t | grep -q amuled ; do sleep 1 ; done
su $USER -c "$WEB --quiet & "
##iPhone
su $USER -c "$SOCKET & "
##
echo "$NAME."
;;
现在最大的问题是,虽然我用了&符号,但这个程序就是不想在后台运行 :( 有什么好主意吗??
谢谢!
2 个回答
2
试着用 nohup process.py &
来启动这个程序。
5
把 su
这个过程放到后台,而不是它的子进程。举个例子:
su $USER -c "$WEB --quiet" &
注意,&符号是在引号外面的。