gpt4 book ai didi

Java 网络应用程序作为服务运行失去网络连接

转载 作者:行者123 更新时间:2023-12-02 04:45:40 25 4
gpt4 key购买 nike

正如标题所示。我有在树莓派 3 上运行的 Java 网络应用程序。当我从控制台运行应用程序时,如 java -jar myApp.javasudo nohup java -jar myApp.java 和然后我离开它,它可以正常工作几个小时。

然后我尝试将此应用程序作为服务运行。配置 wlan auto 后,运行 systmd 脚本和所有内容。应用程序正常启动,但几秒钟后它失去网络连接。我可以补充一点,有无线网络连接。我在想手动运行的应用程序和作为服务运行的应用程序之间有什么区别,但没有找到任何具体内容。有什么我应该知道的吗?到目前为止我还没有找到解决方案。

我已经厌倦了许多 systemd 脚本的组合,但没有任何方法可以解决我的问题。我还尝试从树莓派上的另一个应用程序运行这个应用程序,但它的工作原理就像从这个服务运行一样。

现在我可以补充一点,当我从控制台点击systemctl stop myService,然后systemctl start myService时,它也可以正常工作。

systemd script below:

[Unit]
Description = Java Service
After network.target = MyService.service

[Service]
Type = forking
ExecStart = /usr/local/bin/MyService.sh start
ExecStop = /usr/local/bin/MyService.sh stop
ExecReload = /usr/local/bin/MyService.sh reload

[Install]
WantedBy=multi-user.target

Bash script to run the service:

#!/bin/bash

SERVICE_NAME=app

PATH_TO_JAR=/home/user/app.jar

RE='^[0-9]+$'

APP_PID=\`ps -ef | grep -v grep | grep "app.jar" | awk '{print $2}'\`

case $1 in

start)
echo "Starting $SERVICE_NAME ..."
if ! [[ $APP_PID =~ $RE ]]; then
nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null &
APP_PID=`ps -ef | grep -v grep | grep "app.jar" | awk '{print $2}'`

echo "$SERVICE_NAME started ..."
else
echo "$SERVICE_NAME is already running ..."
fi
;;

stop)
if [[ $APP_PID =~ $RE ]]; then
echo "$SERVICE_NAME stoping ..." &
kill $APP_PID &
APP_PID="" &
echo "$SERVICE_NAME stopped ..."
else
echo "$SERVICE_NAME is not running ..."
fi
;;

restart)
if [[ $APP_PID =~ $RE ]]; then
echo "$SERVICE_NAME stopping ...";
kill $APP_PID;
echo "$SERVICE_NAME stopped ...";
echo "$SERVICE_NAME starting ..."
nohup java -jar $PATH_TO_JAR /tmp 2>> >> /dev/null &
echo "$SERVICE_NAME started ..."
else
echo "$SE`enter code here`RVICE_NAME is not running ..."
fi
;;
esac

最佳答案

我找到了解决方案。我不知道确切的原因是什么,但是当我在运行此应用程序之前进行 sleep 时,它可以正常工作。当我这次之后开始应用程序时,之后它失去连接,它工作正常。

关于Java 网络应用程序作为服务运行失去网络连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56485724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com