내 서비스 상태가 알 수 없는 작업인 이유는 무엇입니까?

내 서비스 상태가 알 수 없는 작업인 이유는 무엇입니까?

나는 팔로우한다이것프로그램의 상태를 보고 싶을 때 init.d에 서비스로 프로그램을 추가하는 방법에 대한 튜토리얼입니다.

sudo status /etc/init.d/noip2

나는 얻다:

status: Unknown job: /etc/init.d/noip2

무슨 뜻인가요? 절차를 바꿔야 할까요?

절차는 다음과 같습니다.

#! /bin/sh

# /etc/init.d/noip2
# Supplied by no-ip.com
# Modified for Debian GNU/Linux by Eivind L. Rygge <[email protected]>
# Updated by David Courtney to not use pidfile 130130 for Debian stable.

# . /etc/rc.d/init.d/functions  # uncomment/modify for your killproc

DAEMON=/usr/local/bin/noip2
NAME=noip2

test -x $DAEMON || exit 0

case "$1" in
   start)
       echo -n "Starting dynamic address update: "
       start-stop-daemon –start –exec $DAEMON
       echo "noip2."
   ;;

   stop)
       echo -n "Shutting down dynamic address update:"
       start-stop-daemon –stop –oknodo –retry 30 –exec $DAEMON
       echo "noip2."
   ;;

   restart)
       echo -n "Restarting dynamic address update: "
       start-stop-daemon –stop –oknodo –retry 30 –exec $DAEMON
       start-stop-daemon –start –exec $DAEMON
       echo "noip2."
   ;;

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

esac
exit 0

답변1

귀하의 스크립트는 init.d스크립트입니다. 이 status명령은 Upstart 작업에 적용되며 스크립트에는 적용되지 않습니다 init.d.

initctl list모든 Upstart 위치를 나열하는 데 사용됩니다. 시도해 보면 noip2존재하지 않는다는 것을 알게 될 것입니다. 실제로 /etc/init.d이 명령은 어떤 스크립트도 표시하지 않는다는 것을 알 수 있습니다. initctl list(및 status시도한 명령)은 Upstart 구성 파일 에서만 작동합니다 /etc/init(누락된 점 참고 )..d

스크립트 상태를 확인하는 명령은 /etc/init.d일반적으로 다음과 같습니다.

# service <script> status

그러나 이것이 올바르게 작동하려면 스크립트가 특정 status기능을 지원해야 하며 사용자의 스크립트는 해당 기능을 지원하지 않습니다.

스크립트에는 세 가지 옵션이 있습니다. startstop, restart이 세 가지 명령만 에 전달할 수 있습니다 service noip2 <cmd>. 나머지 부분을 읽어보면 /etc/init.d더 많은 옵션이 있다는 것을 알 수 있습니다 status.

실제로 게시한 링크의 기사를 읽어보면 상태를 확인하는 방법은 다음과 같습니다 noip2.

$ sudo /usr/local/bin/noip2 –S

관련 정보