Я пытаюсь сохранить приложение на моем сервере ubuntu, чтобы у Google было время проверить его, но приложение продолжает отключаться, когда я выхожу из системы.
Я запускаю приложение Nodejs с supervisor
для отслеживания изменений (через сценарий оболочки)
Я нашел такие команды, как nohup
, но я действительно невежественен, когда дело доходит до запуска фоновых служб, кроме ввода простых команд, таких как service httpd start
что, похоже, очень хорошо работает для Apache на CentOS!
Нужно ли мне создавать другого пользователя для запуска служб? У меня есть экземпляр Linode с Ubuntu 10.04
run.sh
cd myapp/src/main/node
supervisor -w "myapp/src/main/node,myapp2/src/main/node,./" run-apps.js
Причина его выхода заключается в том, что, когда вы выходите из системы и завершаете работу родительской оболочки, сценарий получает сигнал HUP и теряет возможность записи в STDOUT и STDERR.
У вас есть 4 варианта (в порядке «правильность» и «чистота»):
screen
сессияnohup
disown
s и закрывает связанные каналы STDOUT и STDERR.Попробуй это:
nohup supervisor -w "myapp/src/main/node,myapp2/src/main/node,./" run-apps.js &
Некоторые другие способы:
Вот еще один способ обойтись без nohup
: открестись.
Например.:
$ jobs
$ sleep 300 &
[1] 79844
$ jobs
[1] + running sleep 300
$ disown %1
$ jobs
$ pgrep sleep
79844
Объяснение:
jobs
чтобы показать фоновые задания, их нетsleep 300
jobs
очередной раз. PID для sleep
79844, работа №1jobs
очередной раз. Никаких фоновых заданий.pgrep
найти любые процессы с именем sleep
. Есть один, с PID 79844 (тот же PID)Вы можете закрыть терминал и / или выйти из системы, не затрагивая отклоненное задание.
Это имеет то преимущество, что не оставляет nohup.out
файл, но вы также теряете все, что написано в STDOUT
.