#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 Подробнее можно ознакомиться здесь
Комментариев нет:
Отправить комментарий