У меня есть сервер Ubuntu 14.04, и я пытаюсь запустить Апач Караф из ssh выйдите из ssh и ожидайте, что Karaf продолжит выполнение. На самом деле я обнаружил, что как только последний ssh закрывается / выходит из системы, процесс Karaf завершается.
Я запускаю Karaf с помощью команды bin / start как описано здесь (фоновый режим) и в документации указано, что это должно перевести Karaf в фоновый режим, однако мой опыт показал, что этого не происходит. Как только я выхожу из ssh, процесс умирает.
Я пробовал использовать nohup, но снова процесс karaf всегда завершается после закрытия последнего ssh. Я не верю, что это проблема с Karaf, но с некоторой конфигурацией Ubuntu. Я также наблюдаю такое же поведение в Linux Mint.
Однако Karaf ДЕЙСТВИТЕЛЬНО запускается как фоновый процесс, если я запускаю его на RaspberryPi, на котором запущен Raspbian.
Есть ли конфигурация sshd, которая принудительно завершает все процессы, запущенные в ssh, после завершения ВСЕХ подключений ssh? Что бы я ни пытался, я не могу сохранить фоновый процесс после выхода из системы.
ОБНОВИТЬ Глядя на start
сценарий, который он использует exec
:
exec "$KARAF_HOME"/bin/karaf server "$@" >> "$KARAF_REDIRECT" 2>&1 &
и таким образом создается другой процесс. Если я просто сделаю bin/start
все файловые дескрипторы 0,1 и 2 направлены на / dev / null.
Если я сделаю nohup ./start 0<&- &>/dev/null &
за которым следует disown
, то fd 0,1,2 результирующего процесса все переходят в /dev/null
. Я заметил на RaspberryPi, что fd 0,1 и 2 все /dev/pts/0 (deleted)
Процесс может выполняться под лидером сеанса, в данном случае оболочкой, после выхода из оболочки все процессы под ней будут уничтожены. Вот шаги, которые вам, возможно, потребуется выполнить, чтобы disown
процесс -
Первые два шага предназначены только для подтверждения -
jobs
чтобы увидеть процесс. Если он действительно был задуман, его следует указать здесь.fg
выведите его на передний план - вам может потребоваться указать идентификатор задания, если в фоновом режиме несколько заданий.ctrl+Z
- остановить процесс.bg
- фон этоdisown -h [id]
- заменить id на id задания.Второй вариант - демонизировать процесс
nohup ./scriptname 0<&- &>/dev/null &