Как запустить приложение из терминала навсегда? [дубликат]

На этот вопрос уже есть ответ здесь:

Я запускаю веб-сервер jenkins с помощью команды java -jar jenkins.war . Работает отлично. Когда я закрываю терминал, приложение останавливается.

Как заставить его работать, даже если я закрываю сеанс терминала?

3
задан 12 December 2013 в 20:45

5 ответов

Простейшим и наиболее прямым методом является nohup java -jar jenkins.war &. «nohup» означает «без зависания», что является винтажной терминологией, которая не означает прекращение сеанса, когда терминал отключается. "& Амп;" просто запускает процесс в фоновом режиме, аналогично тому, что произойдет, если вы нажмете CTRL + Z (а затем наберете bg 1) во время выполнения процесса на переднем плане.

ВНИМАНИЕ: по умолчанию nohup отправляет вывод процесса в текстовый файл. Если вы не будете осторожны, в некоторых случаях этот файл может стать опасно большим. Относитесь к нему как к любому другому постоянно растущему файлу журнала.

0
ответ дан 12 December 2013 в 20:45

Установите экран . В терминале введите screen, а затем запустите приложение. Нажмите CTRL+A,CTRL+D, чтобы отсоединить экран, и наберите экран терминала -r, чтобы установить заново. Вы можете добраться до экрана через ssh и т.д ...

apt-get install screen
0
ответ дан 12 December 2013 в 20:45

Используйте nohup

Без повешения. Запустите команду, невосприимчивую к зависаниям, запускает данную команду с игнорируемыми сигналами зависания, поэтому команда может продолжить работу в фоновом режиме после выхода из системы. ManPage

nohup Command &

В вашем случае это будет

nohup java -jar jenkins.war &
0
ответ дан 12 December 2013 в 20:45

добавьте & после вашей команды, я имею в виду

java -jar jenkins.war &
0
ответ дан 12 December 2013 в 20:45
  • 1
    @AkeshwarJha OK, таким образом, я выяснил, что, когда каждый пытается работать 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

0
ответ дан 12 December 2013 в 20:45

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

Похожие вопросы: