ドライバを再起動するときにスクリプトを自動的に実行するには?

ドライバを再起動するときにスクリプトを自動的に実行するには?

ドライバの再起動時に実行されるシェルスクリプト(driver_check.sh)で自動実行を設定しようとしています。

デフォルトでは、私のスクリプトは次のようになります。

#!/bin/bash
echo "Start script"
    now=$(date +"%T")
    LOGFILE_HOME=/var/opt/mydriver/log/startupFail.log
echo "======== LOG EVENT CHECKING ========" >> $LOGFILE_HOME
echo "DATE: $(date +%Y-%m-%d ) $now" >> $LOGFILE_HOME
echo "------------------" >> $LOGFILE_HOME
for loop in {1..3}
do
        echo $loop
        echo "Loop $loop" >> $LOGFILE_HOME
        now=$(date +"%T")
        echo "Current time : $now"

        if grep -iq success /var/opt/mydriver/log/driver.log
        then 
            echo "ok"
            break

        else
            if [ $loop = 3 ]
            then 
                    #send email
                    mail -s "Fail to restart/reboot" [email protected]

                    echo "Fail"
                    echo "Fail" >> $LOGFILE_HOME
                    echo "An email has sent>> $LOGFILE_HOME
            fi  
        fi  


        ((loop ++));
        sleep 3


    done

スクリプトの先頭にこの行を追加してみました。

chmod 755 driver_check.sh

また、ファイルを/etc/init.dに移動しましたが、ドライバを再起動してもスクリプトは自動的には実行されません。うまくいくにはどうすればいいですか?あなたが提供できるアドバイスに心から感謝します。

ベストアンサー1

/etc/init.dにスクリプトを配置するだけでは、再起動時に実行できません。 Linuxディストリビューションによっては、実行レベルと起動時にスクリプトを実行する方法(init.d、systemd、rc.d...)を確認する必要があります。

Redhat / CentOS < 7では、[1]スクリプトに正しいヘッダーを追加することでこれらを管理でき、スクリプトがchkconfig正しい実行レベルで開始されるように正しいリンクを自動的に生成します。

[1] このツールは Redhat 7 および CentOS 7 でシステムサービスを管理しません。

おすすめ記事