Как запустить бесконечно скрипт в фоне на Linux?

У меня есть Сценарий PHP с бесконечным циклом. Мне нужен этот сценарий, работающий навсегда. Так, я работаю

php /path/to/script.php > /dev/null &

И это работает в знаниях в контексте защиты моего текущего пользователя. Но когда я закрываю окно терминала (выход), конечно, CentOS Linux закрывает мою программу.

Я вижу два предположения: выполненный от другого пользователя в фоне или делают демона. Я нуждаюсь в помощи в каждой ситуации.

Большое спасибо!

11
задан Andrew Bashtannik 23 March 2010 в 10:46
поделиться

4 ответа

nohup - ваш друг.

nohup command &
25
ответ дан 3 December 2019 в 02:19
поделиться

nohup - ваш друг.

1
ответ дан 3 December 2019 в 02:19
поделиться

Вы можете:

  • Экран установки и запустить команду оттуда. screen - это постоянный сеанс терминала, который можно оставить запущенным.
  • Напишите сценарий инициализации / выскочки (что бы вы ни использовали), чтобы он загружался при загрузке
  • Используйте pear lib system_daemon
  • Используйте cron, если пакетная работа лучше подходит для сценария (просто не забудьте проверить запущенные экземпляры перед запуском другого, если параллелизм является проблемой)
  • Edit: или, как только что сказали все остальные и их брат, nohup
1
ответ дан 3 December 2019 в 02:19
поделиться

Я думаю, что общее решение этой проблемы - nohup :

nohup - это команда POSIX для игнорирования сигнала HUP (зависания), позволяющая команде продолжать работать после того, как пользователь, выполнивший команду, вышел из системы. Сигнал HUP (зависание) по соглашению является способом, которым терминал предупреждает зависимые процессы о выходе из системы.

nohup чаще всего используется для запуска команд в фоновом режиме в качестве демонов. Вывод, который обычно поступает на терминал, попадает в файл с именем nohup.out, если он еще не был перенаправлен. Эта команда очень полезна, когда необходимо запустить множество взаимозависимых пакетных заданий.

6
ответ дан 3 December 2019 в 02:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: