На этот вопрос уже есть ответ здесь:
Я запускаю веб-сервер jenkins с помощью команды java -jar jenkins.war
. Работает отлично. Когда я закрываю терминал, приложение останавливается.
Как заставить его работать, даже если я закрываю сеанс терминала?
Простейшим и наиболее прямым методом является nohup java -jar jenkins.war &
. «nohup» означает «без зависания», что является винтажной терминологией, которая не означает прекращение сеанса, когда терминал отключается. "& Амп;" просто запускает процесс в фоновом режиме, аналогично тому, что произойдет, если вы нажмете CTRL + Z (а затем наберете bg 1
) во время выполнения процесса на переднем плане.
ВНИМАНИЕ: по умолчанию nohup отправляет вывод процесса в текстовый файл. Если вы не будете осторожны, в некоторых случаях этот файл может стать опасно большим. Относитесь к нему как к любому другому постоянно растущему файлу журнала.
Установите экран . В терминале введите screen
, а затем запустите приложение. Нажмите CTRL+A,CTRL+D
, чтобы отсоединить экран, и наберите экран терминала -r, чтобы установить заново. Вы можете добраться до экрана через ssh
и т.д ...
apt-get install screen
Используйте nohup
Без повешения. Запустите команду, невосприимчивую к зависаниям, запускает данную команду с игнорируемыми сигналами зависания, поэтому команда может продолжить работу в фоновом режиме после выхода из системы. ManPage sup>
nohup Command &
В вашем случае это будет
nohup java -jar jenkins.war &
добавьте &
после вашей команды, я имею в виду
java -jar jenkins.war &
gnome-screensaver-comand -l
как корень, он пытается заблокировать для root
' s сессия GUI, который isn' t выполнение. I' ve отредактировал мой ответ соответственно и добавил альтернативное решение с qdbus
. Тот работает с Единицей и doesn' t не требуют никакого sudo
пароль.
– Sergiy Kolodyazhnyy
6 February 2017 в 10:46
Если вы часто запускаете службу, такую как Jenkins, которую хотите запускать в фоновом режиме, а не закрываете ее по завершении сеанса, вам следует рассмотреть возможность реализации сценария инициализации для нее. Посмотрите сценарии в /etc/init.d/ для примеров. Это короткие сценарии оболочки, которые позволяют вам делать такие вещи, как service httpd start
и service httpd stop
и даже service httpd status
, чтобы узнать, работает ли httpd, или он должен работать, но не работает.
Существует отличный пример скрипта для сервиса Hudson, который функционирует очень похоже на Jenkins (они одноуровневые форки одной и той же кодовой базы) здесь: https://wiki.jenkins-ci.org/display/JENKINS / HudsonUbuntuLinuxStartupScript