Где я могу получить nohup.out, если скрипт запускается при запуске

2

test.sh в / root / folder

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

Теперь в той же папке (/ root / folder). Я создал nohup_test.sh

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

Если запустить файл выше, как это nohup sh nohup_test.sh &. Он будет работать в фоновом режиме и создаст nohup.outвыход, test.shкоторый мы можемtail -f nohup.out

Теперь я хочу, чтобы вышеуказанный скрипт nohup_test.sh запускал запуск при запуске (автоматически запускался при запуске ОС).

Я создал другой файл start.shв той же директории (/ root / folder /)

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

Я следовал одной процедуре ЗДЕСЬ .

  vi /etc/rc.local

Добавьте запись как ниже

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

Я думаю, что скрипт ps aux | grep "nohup"запускается (Проверено ). Но я не получил nohup.outфайл. Итак, как я могу получить этот файл, nohup.outили я должен следовать любой процедуре? Спасибо!

Веерендра
источник

Ответы:

3

Добавьте cd /root/folderвверху start.sh. Никогда не доверяйте текущему каталогу при запуске.

Кстати, это слишком сложно. Вам не нужно nohup для заданий, которые не запускаются терминалом; так что вы можете использовать в/etc/rc.local

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

и будет сделано.

Rmano
источник
В конце, вы упомянули 2>&1, не могли бы вы объяснить это.
Veerendra
1
@Veerendra 2>&1просто перенаправляет sdterrк stdout, так что обе выходные потоки сохраняются в nohup.outфайле. В противном случае, возможно, он также может создать nohup.errфайл для другого потока, если это необходимо.
Byte Commander
Спасибо @ByteCommander, как я могу ограничить размер журнала в этом сценарии? Подскажите, пожалуйста. Спасибо
Veerendra
@Veerendra Извините, но я не знаю. Это, наверное, немного сложно. Если вы хотите ограничить размер просмотра, вы можете использовать, lessнапример, программу просмотра или tailкоманду.
Byte Commander