【问题标题】:/etc/init.d script 'detach' from output/etc/init.d 脚本从输出中“分离”
【发布时间】:2014-05-05 19:35:01
【问题描述】:

我创建了一个 /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 的情况下启动脚本?

【问题讨论】:

    标签: linux shell debian init.d


    【解决方案1】:

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

    【讨论】:

    • 谢谢,我试过 start-stop-daemon,但我不知道后台选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 2018-03-17
    • 2014-09-14
    • 2012-10-28
    • 1970-01-01
    • 2014-09-13
    相关资源
    最近更新 更多