python: работает nohup: как избавиться от сообщения? - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть список переменных программ, которые я хочу запустить из задания cron.Решение, на котором я остановился, по крайней мере, на данный момент, заключается в том, чтобы написать реальное задание cron на python, а затем запустить список, запустив каждую программу с:

outf=open('the_command.log','w')
subprocess.Popen(['nohup','the_command', ...],stdout=outf)
outf.close()

Проблема в том, что она создает nohup.out файл - кажется, один и тот же для каждого процесса.Если бы я сделал то же самое из командной строки, это могло бы выглядеть так:

$ nohup the_command ... > the_command.log 2>&1 

Это работает нормально, за исключением того, что при запуске я получаю сообщение от nohup:

nohup: ignoring input and redirecting stderr to stdout

Я попытался перенаправить stderr в / dev / null, но в результате the_command.log пусто.Как я могу решить это?

1 Ответ

0 голосов
/ 21 февраля 2019

Я решил это, используя другую команду detach из http://inglorion.net/software/detach/

Но теперь я считаю, что это неправильно.Было бы лучше использовать службы oneshot, запущенные вашим сценарием задания cron, или сделать так, чтобы запись в cron вызывала запуск службы onehot.

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

...