Правильный метод использования nohup в пакетном процессе

каков наилучший метод использования nohup в пакетном скрипте с несколькими вызовами внутри скрипта.

например, у меня есть скрипт с именем filebuilder.sh и он содержит что-то вроде:

/usr/bin/python buildFile.py fileA
/usr/bin/python buildFile.py fileB
/usr/bin/python buildFile.py fileC

то, что я хочу сделать, это убедиться, что если я запускаю свой скрипт, он будет продолжаться, даже если мой сеанс SSH завершен. Должен ли я просто назвать сценарий так:

nohup filebuilder.sh

или поместить nohup перед каждой записью в файле такой as:

nohup /usr/bin/python buildFile.py fileA
nohup /usr/bin/python buildFile.py fileB
nohup /usr/bin/python buildFile.py fileC 

или как? Если я помещаю его только в сценарий, возможно ли, что один из вызовов python все еще может завершиться сбоем в сигнале завершения? Какова наилучшая практика и какое решение будет соответствовать моим требованиям? Есть ли лучшая альтернатива?

13
задан Dave Johnshon
20.03.2023 16:09 Количество просмотров материала 3110
Распечатать страницу

1 ответ

положить nohup в каждой строке нет ответа.  Если вы сделаете это, и сеанс будет завершен, текущая программа будет запущена до завершения, но затем сценарий завершится без завершения.  nohup filebuilder.sh будет работать, но тогда вы должны помнить, чтобы делать это каждый раз.  Несколько решений:

1. Пишите filebuilder.sh сказать

    exec nohup name_of_the_real_filebuilder.sh

2. Поставь

    trap "" 1

в начале вашего скрипта.  (1-числовое значение " зависания" сигнал.)

0
отвечен Scott 2023-03-21 23:57

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

bash
linux
nohup
script
shell
Вверх