init.d에 의해 호출된 프로그램은 자체적으로 작동하지만 init.d 자체가 실행 중일 때는 작동하지 않습니다.

init.d에 의해 호출된 프로그램은 자체적으로 작동하지만 init.d 자체가 실행 중일 때는 작동하지 않습니다.

나는 현재 두 개의 프로그램을 가지고 있는데, my_sql_auto_update.sh그 중 후자는 를 [실행해야 하는] my_sql_auto_update_initd.shinit.d 스크립트입니다 .~/etc/init.d/my_sql_auto_update.sh

그 내용은 my_sql_auto_update_initd.sh다음과 같습니다.

#!/bin/bash

#chkconfig: 2345 95 05

. /lib/lsb/init-functions

NAME=mysql_auto_update.sh
PIDFILE=/var/run/$NAME.pid
DAEMON=/home/3kstc/start_up_job/mysql_autoupdate/$NAME

#PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
# 

start() 
{
    start-stop-daemon -S -o -q -m -b -p $PIDFILE -a $DAEMON 
    log_daemon_msg "Started auto-updating website"
}

stop() 
{
  start-stop-daemon -K -o -q -m -p $PIDFILE --name $NAME 
  log_daemon_msg "Stopped auto-updating website"
}

case "$1" in
    start)
       start
        ;;
    stop|force-stop)
       stop
        ;;
  restart)
    stop
    start
    ;;
  *)
    echo "Usage: $0 {start|restart|stop}"
esac    

exit 0

mysql_auto_update.sh혼자 프로그램을 실행할 때터미널에서는 아무런 문제 없이 작동합니다.

묻다: init.d 스크립트에 누락된 것이 있나요? 아니면 작동을 방해할 수 있는 다른 오류가 있나요? 내 직업 자체로 인해 mysql_auto_update.sh문제는 위의 코드에 있습니다. 어떤 도움이라도 대단히 감사하겠습니다!

추가 정보: mysql_auto_update.sh를 통해 업데이트된 타임스탬프도 웹사이트로 보냅니다. 이렇게 하면 마지막 업데이트가 언제인지 알 수 있습니다. 타임스탬프는 변경되지 않으며 웹사이트는 마땅한 새로운 정보를 얻지 못합니다.

실행하면 my_sql_auto_update_initd.sh다음이 인쇄되므로 서브루틴이 유효하다는 "Started auto-updating website"것을 알 수 있습니다 . start()하지만 아쉽게도 웹사이트가 업데이트되지 않아 정말 혼란스럽습니다. Wurtel에 대한 어떤 제안이라도 주시면 감사하겠습니다!

관련 정보