Назад | Перейти на главную страницу

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

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

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

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

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

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

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

screen -L -dmS somename ruby app.rb

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

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