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

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 или я должен следовать какой-либо процедуре? Спасибо!

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам