Запустите приложение Sinatra в фоновом режиме, перенаправив (добавив) в файл stdout и stderr

У меня есть приложение Sinatra, которое я запускаю на своей локальной машине, используя ruby app.rb, Развертывая его на удаленной машине через ssh, как мне запустить его в фоновом режиме и перенаправить stdout и stderr в файл журнала?

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

Каков рекомендуемый способ запуска моего веб-приложения в качестве демона?

я пробовал nohup ruby app.rb &, но это, кажется, отсутствует stderr, и операторы журнала в некоторых случаях не работают.

2 ответа

Решение

Под bash попробуйте:

nohup ruby app.rb >> /log/file 2>&1 &

screen -L -dmS somename ruby app.rb

Это запустит процесс экрана с именем "somename", при этом весь вывод программы будет зарегистрирован на screenlog.0 в текущем рабочем каталоге.

Если вы по какой-либо причине захотите вернуть консоль приложения, вы можете сделать screen -r somename,

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