相关疑难解决方法(0)

在Linux上运行Java应用程序即服务

我编写了一个在标准虚拟托管Linux解决方案上运行的Java服务器应用程序.应用程序一直运行,监听套接字连接并为它们创建新的处理程序.它是客户端 - 服务器应用程序的服务器端实现.

我启动它的方法是将它包含在服务器的启动rc.local脚本中.但是一旦启动,我不知道如何访问它来阻止它,如果我想安装更新,所以我必须重新启动服务器才能重新启动应用程序.

在Windows PC上,对于这种类型的应用程序,我可能会创建一个Windows服务,然后我可以根据需要停止并启动它.Linux盒子上有类似的东西,所以如果我启动这个应用程序,我可以停止它并重新启动它而不需要完全重启服务器.

我的应用程序称为WebServer.exe.它是在服务器启动时启动的,它包含在我的rc.local中:

java -jar /var/www/vhosts/myweb.com/phpserv/WebServer.jar &
Run Code Online (Sandbox Code Playgroud)

我在Linux上有点像菜鸟,所以任何帖子都会受到赞赏.但是我确实有SSH,并且可以通过完整的FTP访问该框以安装任何更新以及访问Plesk面板.

java linux service

124
推荐指数
6
解决办法
19万
查看次数

运行jar作为Linux服务 - init.d脚本开始应用程序卡住了

我目前正致力于在Linux VM机箱上实现可运行的jar作为后台服务.我已经使用此处的示例作为基础来处理,并将start()方法修改为:

start(){

#启动应用程序

java -jar /home/vagrant/sagepay-stub-1.4.jar> /var/log/sagepay-stub.log 2>&1

PID = $!

echo $ PID> pid.txt

}

这将设置服务以将输出写入日志sagepay-stub.log并保存PID以在调用服务停止方法时使用.

这是start命令的处理程序:

案例"$ 1"开始)

echo "Starting $APP"
start
echo "$APP started."
;;
Run Code Online (Sandbox Code Playgroud)

当我调用方法时,我得到了"Starting Sagepay-stub"输出,但后来我被困在脚本中.我所能做的就是Ctrl&C退出,这给了我输出:

"Sagepay-stub开始了."

现在我查看日志并查看输出是否符合预期 - 存根服务器已成功启动.但我无法忘记端口(我已使用iptables打开相关端口) - 连接被拒绝:

Connecting to localhost|127.0.0.1|:8889... failed: Connection refused.
Run Code Online (Sandbox Code Playgroud)

任何有关问题的想法都值得赞赏.我认为问题在于启动应用程序然后继续运行并让它在后台运行.应用程序启动时,脚本会等待某些东西.罐子在没有输入的情况下运行良好.

如果问题出在PID命令(我在另一个线程上找到的接受答案),我该如何评论这些命令并仍然可以停止服务?

对代码的评论也欢迎

谢谢

java linux service jar localhost

5
推荐指数
1
解决办法
9951
查看次数

标签 统计

java ×2

linux ×2

service ×2

jar ×1

localhost ×1