У меня есть jar
файл, который слушает запросы tcpip и отправляет данные соответственно.
этот jar
файл должен быть запущен на службе в raspbian.
Я следовал инструкциям на этой ссылке
Я создал файл sh и поместил его в /usr/local/bin
(Tourmaline.sh
):
#!/bin/sh
SERVICE_NAME=Tourmaline
PATH_TO_JAR=/usr/local/bin/Tourmaline.jar
PID_PATH_NAME=/tmp/Tourmaline-pid
case $1 in
start)
echo "Starting $SERVICE_NAME ..."
if [ ! -f $PID_PATH_NAME ]; then
exec 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 Tourmaline.sh start"
на терминале, программа начинает работать, и когда я отправляю запрос, я получаю ответ.
это была фаза 1.
Затем я создал служебный скрипт и поместил его в /etc/systems/system
(Tourmaline.service
):
[Unit]
Description = Tourmaline
After= network.target
[Service]
Type = forking
ExecStart = /usr/local/bin/Tourmaline.sh start
ExecStop = /usr/local/bin/Tourmaline.sh stop
ExecReload = /usr/local/bin/Tourmaline.sh reload
[Install]
WantedBy=multi-user.target
Я включил службу, используя "sudo systemctl enable Tourmaline"
и начните с "sudo systemctl start Tourmaline.service"
в статусе вижу, что сервис запущен и активен
Однако, когда я отправляю запрос, я получаю "connection refused"
ошибку
я пытаюсь запустить "sudo Tourmaline.sh start"
но он говорит
программа уже запущена (потому что служба запущена).
как я могу сделать так, чтобы служба принимала соединения?