init.dによって呼び出されたプログラムはそれ自体で動作しますが、init.d自体が実行されているときは機能しません。

init.dによって呼び出されたプログラムはそれ自体で動作しますが、init.d自体が実行されているときは機能しません。

私は現在2つのプログラムを持っています。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で更新されたタイムスタンプもWebサイトに送信されます。これにより、最後の更新がいつであるかがわかります。タイムスタンプは変更されず、ウェブサイトは新しい新しい情報を取得できません。

実行すると、my_sql_auto_update_initd.sh以下が印刷されるため、サブルーチンが有効であること"Started auto-updating website"がわかります。start()しかし残念ながら、ウェブサイトが更新されていないので、本当に混乱しています。ウルテルのどんな提案でもくれてありがとう!

ベストアンサー1

おすすめ記事