【发布时间】:2015-02-04 17:25:24
【问题描述】:
我有以下代码在 centos 6.6 下的 /etc/init.d/ 中运行:
#!/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
提前谢谢你!
【问题讨论】:
标签: linux bash process background daemon