Instale o script com restart e continue

2

Eu quero criar um script com isso:

command_1
command_2
...
command_n

restart

command_n+1
command_n+2
...
command_m

É possível no bash?

    
por georgian 30.01.2013 / 19:46

2 respostas

2

Nesse caso, você cria um arquivo onde armazena seu último comando. E crie um script que verifique se o arquivo existe e contém uma linha. Em caso afirmativo, a última vez que seu script foi executado e deve ser concluído.

Quando o arquivo não existe ou está vazio, não faça nada. Quando o arquivo contiver um comando, execute o comando de acompanhamento.

# Determine if last_command.txt exists
if [ -f last_command.txt ]; then
    # Extract the last line out of the file
    last_command=$(head -n 1 last_command.txt)

    # Check if last_command is set, that is the next command has to be executed.
    if [ ! -z $last_command ]; then 
        # Excecute the next command. 
    fi
else
   # Do nothing.
fi

Coloque a próxima linha antes do comando de reinicialização.

# Writes <Last command> to last_command.txt. Care for proper permissions!
echo "<Last command>" > last_command.txt

reboot
    
por OrangeTux 30.01.2013 / 19:51
1

[RESOLVIDO]

Eu crio dois arquivos: script_before_reboot e script_after_reboot

script_befor_reboot:

#!/bin/bash
cale='dirname $0'
sudo update-rc.d -f script_after_reboot remove
cp $cale"/script_after_reboot" /etc/init.d/
sudo chmod +x /etc/init.d/script_after_reboot
sudo update-rc.d script_after_reboot defaults 90

sudo rm /etc/rc0.d/K90script_after_reboot
sudo rm /etc/rc1.d/K90script_after_reboot
sudo rm /etc/rc3.d/S90script_after_reboot
sudo rm /etc/rc4.d/S90script_after_reboot
sudo rm /etc/rc5.d/S90script_after_reboot
sudo rm /etc/rc6.d/K90script_after_reboot

command_1
command_2
...
command_n
sudo reboot

script_after_reboot:

#!/bin/bash
command_1
command_2
...
command_n
sudo update-rc.d -f script_after_reboot remove
# or, if you need another reboot :
# sudo update-rc.d -f script_after_reboot remove && sudo reboot
exit 0

Desta forma, script_before_reboot é executado com permissões de root (sudo / path / script_before_reboot). Após a reinicialização, o script script_after_reboot é executado a partir de seu link simbólico / etc / rc2.d / script_after_reboot. Após a execução, este script é autodeletado juntamente com seu próprio link simbólico encontrado em / etc / rc2.d. Isso é tudo. @OrangeTux Obrigado pelo seu interesse.

    
por georgian 31.01.2013 / 20:07