Onde posso obter o nohup.out, se o script iniciar na inicialização

2

test.sh na pasta / root /

#!/bin/bash
echo "Hello" #Sample Code

Agora na mesma pasta (/ root / folder). Eu criei nohup_test.sh

#!/bin/bash
while true
do
    sh /root/folder/test.sh
    sleep 1
done

Se você executou o arquivo acima, como este nohup sh nohup_test.sh & . Ele será executado em segundo plano e criará nohup.out com a saída de test.sh , que podemos tail -f nohup.out

Agora eu quero que o script acima nohup_test.sh execute o start startup (executado automaticamente na inicialização do sistema operacional).

Eu criei outro arquivo start.sh no mesmo diretório (/ root / folder /)

#!/bin/bash
nohup sh /root/folder/nohup_test.sh &

Eu segui um procedimento AQUI .

  vi /etc/rc.local

Adicione a entrada como abaixo

# This script is executed at the end of each multiuser runlevel
/root/folder/start.sh || exit 1   # Added by me
exit 0

Acho que o script está iniciando (marcado com ps aux | grep "nohup" ), mas não recebi o arquivo nohup.out . Então, como posso obter esse arquivo nohup.out ou eu tenho que seguir qualquer procedimento? Obrigado!

    
por Veerendra 21.09.2015 / 15:41

1 resposta

3

Adicione cd /root/folder na parte superior de start.sh . Nunca confie no diretório atual em tarefas de inicialização.

BTW, isso é excessivamente complexo. Você não precisa de nohup para trabalhos que não são iniciados por um terminal; então você pode usar em /etc/rc.local

/root/folder/nohup_test.sh > /root/folder/my_output_file.log 2>&1 & 

e pronto.

    
por Rmano 21.09.2015 / 16:20