我已经创建了一个/etc/init.d脚本来启动一个包含while true循环的shell脚本。下面是脚本的内容:
#!/bin/bash
# /etc/init.d/SCRIPT
### BEGIN INIT INFO
# Provides: SCRIPT
# Required-Start: $remote_fs $syslog $network
# Required-Stop: $remote_fs $syslog $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start SCRIPT script
# Description: Sample desc
### END INIT INFO
case "$1" in
start)
echo "Starting SCRIPT.."
/usr/local/bin/SCRIPT/SCRIPT_run.sh
;;
stop)
echo "Stopping SCRIPT.."
killall SCRIPT_run.sh
;;
*)
echo "Usage: /etc/init.d/SCRIPT start|stop"
exit 1
;;
esac
exit 0现在,由于SCRIPT_run.sh包含一个无限循环,所以当我执行/etc/init.d/SCRIPT启动时,它不会返回到shell,因为它正在等待脚本完成执行。有没有一种不将输出“链接”到shell而启动脚本的方法?
发布于 2014-05-05 19:38:33
您可以使用&将其放到后台,但是使用Debian附带的start-stop-daemon要安全得多,并且有一个--background选项来处理这个问题。
https://stackoverflow.com/questions/23480335
复制相似问题