Запуск сценария Ruby в фоновом режиме в течение неопределенного времени
У меня есть скрипт Ruby, который запускает / запрашивает базу данных и вводит / удаляет информацию каждые 30 секунд. Я запускаю его из командной строки, используя:
ruby worker.rb
Я захожу на сервер. Когда я закрываю терминал, рабочий перестает работать. Есть ли способ обеспечить его работу?
2 ответа
Да. Простой способ заключается в использовании nohup
а также &
:
nohup ruby worker.rb &
Запустите его, верните управление оболочке и дайте ему работать независимо от терминала. Другой вариант - сделать его демоном. Этот код идет после кода настройки:
Process.daemon
Для лучшего контроля вы хотели бы использовать Screen или Tmux
Вы сможете запустить скрипт как обычно (без демона) и увидеть результат.
Вы можете закрыть сеанс SSH, и сценарии продолжатся.
При следующем входе в систему вы получите ту же среду, в которой вы никогда не выходили из системы.