我有启动以太坊矿工的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