Puppet等待永无止境的bash脚本

时间:2017-12-06 18:48:43

标签: linux bash puppet daemon

我有启动以太坊矿工的bash脚本。该脚本也开始显示它正在做什么的日志,并且在我给它退出信号之前不会停止。 因为它没有停止没有用户输入puppet将看不到脚本已经启动并且一直等待脚本已经完成的信号。 现在我该怎么做才能让脚本发出已完成的信号?

如果我更新文件,木偶还可以停止已经运行的脚本并启动一个新脚本,而不是仅仅在旧脚本旁边启动一个新脚本,这将是一个很好的额外功能。

这是启动脚本的puppet模块的一部分:

exec { 'run_miner':
    command => '/tmp/puppetethereum/claymore/miner_startstop.sh',
    provider => 'shell',
    cwd => '/tmp/puppetethereum/claymore/',
    require => File['miner_skripti'],
}

这适用于学校项目,因此允许使用脏方法。

编辑。 我已经尝试过start-stop-daemon的这个模板,但是puppet仍在等待脚本启动的信号:

#!/bin/sh

# Quick start-stop-daemon example, derived from Debian /etc/init.d/ssh
set -e

# Must be a valid filename
NAME=ethereumminer
PIDFILE=/var/run/$NAME.pid
#This is the command to be run, give the full pathname
DAEMON=sudo bash /tmp/claymore/mine.sh
DAEMON_OPTS="--baz=quux"

export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"

case "$1" in
  start)
        echo -n "Starting daemon: "$NAME
    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS
        echo "."
    ;;
  stop)
        echo -n "Stopping daemon: "$NAME
    start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
        echo "."
    ;;
  restart)
        echo -n "Restarting daemon: "$NAME
    start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $PIDFILE
    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS
    echo "."
    ;;

  *)
    echo "Usage: "$1" {start|stop|restart}"
    exit 1
esac

exit 0

0 个答案:

没有答案