我创建了一个/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 start时,它不会回到我的shell,因为它等待脚本完成执行。有没有办法启动脚本,而无需链接'输出到我的shell?
答案 0 :(得分:1)
您可以使用&
将其放到后台,但使用Debian附带的start-stop-daemon
更加安全,并且可以使用--background
选项来处理此