我在/etc/init.d/下的centos 6.6下运行以下代码:
#!/bin/sh
DAEMON=/usr/local/bin/csvmarine_X.py
PARAMETERS=""
LOGFILE=/var/log/somefile.log
start() {
echo -n "starting up $DAEMON"
RUN=`cd / && $DAEMON $PARAMETERS > $LOGFILE 2>&1`
if [ "$?" -eq 0 ]; then
echo "Done."
else
echo "FAILED."
fi
}
stop() {
killall $DAEMON
}
status() {
killall -0 $DAEMON
if [ "$?" -eq 0 ]; then
echo "Running."
else
echo "Not Running."
fi
}
case "$1" in
start)
start
;;
restart)
stop
sleep 2
start
;;
stop)
stop
;;
status)
status
;;
*)
echo "usage : $0 start|restart|stop|status"
;;
esac
exit 0
它工作正常,我想让它在后台运行。
我在搜索后的理解是bash参数'$'(不带引号)负责任何进程/脚本的后台运行。
所以我尝试了这条线:
RUN=`cd / && $DAEMON $PARAMETERS > $LOGFILE 2>&1
添加'&'行的末尾或管道的参数如下:
RUN=`cd / && $DAEMON $PARAMETERS > $LOGFILE 2>&1 &
和
RUN=`cd / && $DAEMON $PARAMETERS > $LOGFILE 2>&1 | &
任何人都可以给我一个建议/指南/教程,以进一步搜索我必须做的事情吗?
当然,如果有人能给我一个直接答案,那么欢迎接受:D
提前谢谢!
答案 0 :(得分:1)
使用提供的'模板',在/etc/init.d/skeleton中的debian中,对于centos,它类似于/ usr / share / doc / initscripts - * / sysvinitfiles / skeleton至少在6中使用它,或者你可以通过google'init.d / skeleton'轻松下载。