Мне нужно запустить java-банку на сервере, чтобы общаться между двумя приложениями. Я написал два сценария оболочки для его запуска, но как только я запускаю этот сценарий, я не могу завершить / завершить процесс. Если я нажму ctrl+ Cили закрою консоль, сервер выключится. Может ли кто-нибудь помочь мне изменить этот сценарий, чтобы он работал как обычный сервер?
#!/bin/sh
java -jar /web/server.jar
echo $!
#> startupApp.pid
shell
unix
executable-jar
Бернад Али
источник
источник
nohup
всегда должно сочетаться с перенаправлением stdout и stderr явным образом - в противном случае вы не получите контроля над тем, куда идут журналы, и в конечном итоге получите некрасивый,nohup.out
созданный в том каталоге, из которого этот скрипт вызывается.Systemd, который сейчас работает в большинстве дистрибутивов
Шаг 1:
Найдите свои пользовательские службы, шахта была по адресу
/usr/lib/systemd/system/
Шаг 2:
Создайте текстовый файл с вашим любимым текстовым редактором, назовите его
whatever_you_want.service
Шаг 3:
Поместите следующий шаблон в файл
whatever_you_want.service
Шаг 4:
Запустите свой сервис
как суперпользователь
источник
Если вы используете Ubuntu и у вас есть Upstart ( http://upstart.ubuntu.com/ ), вы можете попробовать следующее:
Создайте
/var/init/yourservice.conf
со следующим содержанием
Теперь вы можете оформить
service yourservice start
иservice yourservice stop
команду. Вы можете/var/log/yourservice.log
проверить, работает ли он.Если вы просто хотите запустить jar-файл из консоли, не загромождая окно консоли, вы можете просто сделать:
источник
java -jar /web/server.jar > /var/log/yourservice.log 2>&1 &
Запустите в фоновом режиме и добавьте журналы в файл журнала, используя следующее:
источник