Запуск сценария Ruby в фоновом режиме в течение неопределенного времени

У меня есть скрипт Ruby, который запускает / запрашивает базу данных и вводит / удаляет информацию каждые 30 секунд. Я запускаю его из командной строки, используя:

ruby worker.rb

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

2 ответа

Да. Простой способ заключается в использовании nohup а также &:

nohup ruby worker.rb &

Запустите его, верните управление оболочке и дайте ему работать независимо от терминала. Другой вариант - сделать его демоном. Этот код идет после кода настройки:

Process.daemon

Для лучшего контроля вы хотели бы использовать Screen или Tmux

Вы сможете запустить скрипт как обычно (без демона) и увидеть результат.

Вы можете закрыть сеанс SSH, и сценарии продолжатся.

При следующем входе в систему вы получите ту же среду, в которой вы никогда не выходили из системы.

Другие вопросы по тегам