我不明白这个错误:start-stop-daemon:选项--exec
需要一个参数
我对这个世界很陌生init.d
,刚刚使用服务调用让我的脚本运行,我只想让这个脚本工作,它在启动时启动,但由于此错误而失败,有什么帮助吗? (即使与我的问题无关,也欢迎任何建议或重写)
这是我的脚本:
#!/bin/bash
# shell script to ...
#set the full path to the programs we need to use
NTOP=/opt/bash_scripts/start-up-superscript &
KILLALL=/usr/bin/killall
case "$1" in
start)
echo "Starting SDD Install..."
start-stop-daemon --start --quiet --oknodo --exec $NTOP
;;
stop)
#kill ntop
echo "Stopping SSD..."
$KILLALL ntop
;;
restart)
$0 stop
$0 start
;;
status)
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
;;
esac
答案1
我在这里引用了杀掉进程的评论和共享编辑的变化。至于开始,你需要删除&从定义服务的名称开始。
为了识别要停止的进程,由于在启动时添加了解释器,因此使用 PID 很方便。所以你的脚本可以修改为:
#!/bin/bash
# shell script to ...
set -e
#set the full path to the programs we need to use
NTOP=/opt/bash_scripts/start-up-superscript
PIDFILE=/var/run/start-up-superscript.pid
case "$1" in
start)
echo "Starting SDD Install..."
start-stop-daemon --start --quiet --oknodo --exec $NTOP --pidfile $PIDFILE -m
;;
stop)
#kill ntop
echo "Stopping SSD..."
start-stop-daemon --stop --quiet --pidfile $PIDFILE
;;
restart)
$0 stop
$0 start
;;
status)
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
;;
esac
这样,整个过程的启动和停止应该按照您的要求进行。