我编写了一个Java服务器应用程序,它运行在一个标准的虚拟主机Linux解决方案上。应用程序一直运行,监听套接字连接,并为它们创建新的处理程序。它是客户端-服务器应用程序的服务器端实现。
我启动它的方式是将它包含在服务器的start up rc.local脚本中。但是一旦启动我不知道如何访问它,停止它,如果我想安装一个更新,所以我必须重新启动服务器,以便重新启动应用程序。
在windows PC上,对于这种类型的应用程序,我可以创建一个windows服务,然后我可以根据需要停止和启动它。在一个Linux盒子上有类似的东西吗,这样,如果我启动这个应用程序,我就可以停止它并重新启动它,而不需要完全重新启动服务器。
我的应用程序名为WebServer.exe。它在服务器启动时通过将其包含在my rc.local中来启动:
java -jar /var/www/vhosts/myweb.com/phpserv/WebServer.jar &
我是一个有点不懂Linux的人,所以在任何帖子中都可以看到任何例子。然而,我确实有SSH和完全的FTP访问框安装任何更新,以及访问Plesk面板。
我在这里编写了另一个简单的包装:
#!/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
您可以在这里学习关于init.d的完整教程,在这里学习关于systemd(ubuntu 16+)的完整教程
如果需要输出日志,请替换2
nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null &
行用于
nohup java -jar $PATH_TO_JAR >> myService.out 2>&1&
问题内容: 我已经编写了一个在标准虚拟主机Linux解决方案上运行的Java服务器应用程序。该应用程序始终在运行,以监听套接字连接并为其创建新的处理程序。它是客户端服务器应用程序的服务器端实现。 我启动它的方法是将其包含在服务器的启动 rc.local 脚本中。但是,一旦启动,我不知道如何访问它以停止它以及是否要安装更新,因此我必须重新启动服务器才能重新启动应用程序。 在Windows PC上,对
问题内容: 我想将Java应用程序作为服务运行。不幸的是,我的局限性在于无法使用Java Service Wrapper之 类的工具(它确实是一种出色的工具)。 有什么方法可以在不依赖外部应用程序的情况下将可执行的JAR作为服务运行吗?我当前已安装该服务,但无法启动。这是我遇到的困扰,除了关于JSW的信息之外,我无法在Google上找到其他任何东西。 问题答案: 有Java Service Wra
问题内容: 每当用户断开手机通话时,我都希望显示自定义弹出消息。问题是如何检测应用程序何时未运行。任何线索都将有所帮助。 问题答案: 已经有一段时间了,并且已经有了很多发展。 首先,如何在Flutter中创建服务以使应用程序始终在后台运行有一些答案? 此外,使用Flutter插件和地理围栏(在2018年9月),Flutter / Background流程 基本上将使您指向在后台执行中等/执行Dar
问题内容: 多年来,由于这篇文章引起了很多关注,因此我在文章的底部列出了每个平台的最佳解决方案。 原始帖子 : 我希望我的node.js服务器在后台运行,即:当我关闭终端时,我希望服务器继续运行。我已经用谷歌搜索并提出了本教程,但是它没有按预期工作。因此,我没有使用该守护程序脚本,而是以为我只使用了输出重定向(该`2>&1 file`部分),但这也不会退出-我在终端中出现空白行,就像它在等待输出/
我想运行perl6/raku Cro应用程序,作为前端Web服务器后面的服务。 只是运行不会处理分段错误后的重新启动 以前在perl5中,我使用过FastCGI-但是的惯用语看起来不兼容FastCGI::Native的示例。 由确实有一个处理程序,但是我不确定这是否足以在服务中指向它,即。 人们目前如何托管Cro应用程序?
我在Azure上的Linux应用服务上部署了一个响应js网站。但它没有部署在应用服务上。我使用pm2命令在linux环境下运行应用程序 pm2 serve/home/site/wwwroot/--无守护进程 但在错误日志中,未找到pm2的错误。接下来呢 容器没有响应端口: 8080上的HTTP ping,站点启动失败。 站点的容器已退出,站点启动失败