Страницы

Поиск по вопросам

пятница, 10 января 2020 г.

Как сделать постоянно работающее java приложение на сервере

#java #linux #shell


Есть простой java-сервер на сокетах. Запускаю его по ssh на ubuntu server, на котором
стоит только jre, всё хорошо, работает.
Ну и как я закрываю ssh сеанс мой java-сервер закрывается.
Что нужно сделать для того что бы приложение сервер постоянно работало?
И в дальнейшем как реализовывать просмотр состояния сервера, например количество
подключенных клиентов?
Каким способом по хорошему делаются такие вещи?
    


Ответы

Ответ 1



Вам нужно создать скрипт-wraper для запуска вашего приложения как сервиса. Скрипт помещается в папку /etc/init.d/. Пример скрипта: #!/bin/sh SERVICE_NAME=MyService PATH_TO_JAR=/usr/local/MyProject/MyJar.jar PID_PATH_NAME=/tmp/MyService-pid case $1 in start) echo "Starting $SERVICE_NAME ..." if [ ! -f $PID_PATH_NAME ]; then nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null & echo $! > $PID_PATH_NAME echo "$SERVICE_NAME started ..." else echo "$SERVICE_NAME is already running ..." fi ;; stop) if [ -f $PID_PATH_NAME ]; then PID=$(cat $PID_PATH_NAME); echo "$SERVICE_NAME stoping ..." kill $PID; echo "$SERVICE_NAME stopped ..." rm $PID_PATH_NAME else echo "$SERVICE_NAME is not running ..." fi ;; restart) if [ -f $PID_PATH_NAME ]; then PID=$(cat $PID_PATH_NAME); echo "$SERVICE_NAME stopping ..."; kill $PID; echo "$SERVICE_NAME stopped ..."; rm $PID_PATH_NAME echo "$SERVICE_NAME starting ..." nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null & echo $! > $PID_PATH_NAME echo "$SERVICE_NAME started ..." else echo "$SERVICE_NAME is not running ..." fi ;; esac Обязательно нужно дать скрипту права на выполнение: sudo chmod +x /etc/init.d/mytestserv После чего для вас доступны следующие команды: sudo service mytestserv start sudo service mytestserv stop sudo service mytestserv restart Добавление в автозагрузку: sudo update-rc.d mytestserv defaults Подробнее можно ознакомиться здесь

Комментариев нет:

Отправить комментарий