Где я могу получить 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 &
и будет сделано.