Как я могу запустить процесс Linux в фоновом режиме и войти в вывод nohup - PullRequest
0 голосов
/ 31 августа 2011

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

nohup bash -c "./manage.py celeryd -B -E -l DEBUG &> ../../logs/celeryd_beat.nohup &> ../../logs/celeryd_beat.err" &

Есть ли способ сделать вывод nohup в ../../logs/celeryd_beat.nohup?

С уважением,

Ответы [ 3 ]

2 голосов
/ 31 августа 2011

Попробуйте

nohup bash -c "./manage.py celeryd -B -E -l DEBUG > ../../logs/celeryd_beat.nohup 2> ../../logs/celeryd_beat.err" &
0 голосов
/ 31 августа 2011

Функция nohup позволяет сохранять вывод в nohup.out, если вы не перенаправляете его. Поскольку вы, похоже, уже сохраняете все нужные данные, вы можете просто добавить >/dev/null 2>&1 в конце, непосредственно перед финальным &. (Но что с внешним bash -c? Мне это кажется совершенно ненужным.)

0 голосов
/ 31 августа 2011

Конечно, если вы посмотрите на справочную страницу для nohup, там написано

Чтобы сохранить вывод в FILE, используйте `nohup COMMAND> FILE '.

(по крайней мере, это в моей системе, хотя вы должны проверить, совпадает ли ваша). Так что-то вроде

nohup bash -c "..." >../../logs/celeryd_beat.nohup

должно работать на вас. (Я пропустил вашу команду между кавычками, но вы, конечно, должны включать ее, когда делаете это)

РЕДАКТИРОВАТЬ: На самом деле, теперь, когда я заметил, что вы перенаправляете стандартный вывод и стандартную ошибку самого скрипта Python (для чего вы должны использовать > и 2>, если вы хотите, чтобы они пошли для разделения файлов - см. ответ Джима), вы можете просто отказаться от вывода самого nohup, который на самом деле ничего не должен включать. Так что в этом случае вы можете сделать

nohup bash -c "..." >/dev/null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...