/etc/init.d脚本'从输出'分离'

时间:2014-05-05 19:35:02

标签: linux shell debian init.d

我创建了一个/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?

1 个答案:

答案 0 :(得分:1)

您可以使用&将其放到后台,但使用Debian附带的start-stop-daemon更加安全,并且可以使用--background选项来处理此