이 오류를 이해할 수 없습니다: 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
이렇게 하면 전체 프로세스가 요구 사항에 따라 시작되고 중지됩니다.