Como executar automaticamente o script após a reinicialização do driver?

0

Estou tentando definir uma execução automática no meu script de shell (chamado driver_check.sh), que será acionado na reinicialização do driver.

Basicamente, meu script é mostrado abaixo:

#!/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

Eu tentei adicionar esta linha no início do script

chmod 755 driver_check.sh

Eu também movi o arquivo para /etc/init.d O script ainda não é executado automaticamente quando eu reiniciar o driver. O que mais devo fazer para que funcione? Realmente aprecia qualquer conselho que vocês possam oferecer.

    
por Kristin.Y 14.12.2015 / 10:12

2 respostas

1

Colocar o script em /etc/init.d não será suficiente para executá-lo na reinicialização. Dependendo da sua distribuição linux, você deve verificar o runlevel e como executar um script na inicialização (init.d, systemd, rc.d ....)

No redhat / CentOS < 7, você tem chkconfig [1] para gerenciar tais coisas, adicionando o cabeçalho correto ao seu script, ele criará automaticamente o link correto para que o script seja iniciado no nível de execução correto.

[1] no redhat 7 e no CentOS 7 esta ferramenta não gerencia o serviço systemd

    
por 14.12.2015 / 11:00
0

Você pode usar o udev para executar o comando na alteração de hardware. Eu não posso dizer mais como usá-lo, mas ele certamente te ajudará.

    
por 14.12.2015 / 10:58