在linux中启动一个类似服务的jar文件[关闭]
Posted
技术标签:
【中文标题】在linux中启动一个类似服务的jar文件[关闭]【英文标题】:Start a jar file like service in linux [closed] 【发布时间】:2014-02-28 01:20:26 【问题描述】:我想按如下方式启动和停止我的jar文件
service myService start
service myService stop
我当前运行的jar文件如下
cd /home/alex/IdeaProjects/myService
java -jar target/myService-SNAPSHOT-1.jar server config.yml
我该怎么办?
【问题讨论】:
实现包装服务。稍作搜索就会显示一些您可以使用的第 3 方实现。 欺骗***.com/questions/11203483/… 【参考方案1】:我更喜欢轻量级、免费的 bash 脚本,而不是需要许可的更复杂的系统。
http://gustavostraube.wordpress.com/2009/11/05/writing-an-init-script-for-a-java-application/
Running jar as a Linux service - init.d script gets stuck starting app
https://askubuntu.com/questions/99232/how-to-make-a-jar-file-run-on-startup-and-when-you-log-out
【讨论】:
您的链接很有帮助。谢谢【参考方案2】:如果你想尝试 DIY 的方式,你可以在你的 /etc/init.d 目录中放置一个启动脚本,就像这里所说的那样。
http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/
但是,要实现干净的yourScript stop
命令,我建议您将功能拆分为启动器和守护程序,并使您的启动器能够启动或与现有守护程序通信,以便向其发送订单。然后你的启动脚本只会调用你的启动器,而启动器又会启动一个新的守护进程,或者向现有的守护进程发送命令。
【讨论】:
请求:您能否发布一个启动器和守护程序的小示例(针对这种特殊情况)或添加一些有效教程的链接。谢谢。 恐怕我手头什么也没有。您最好的办法是在您的服务中为管理目的保留一个端口,就像应用程序服务器一样,然后编写一个简单的 30-40 行程序(您的启动器)将命令发送到该端口。然后您的服务将有一个线程在该端口上侦听,处理重新启动或停止命令 前段时间我正在解决我记录的类似任务jaksky.wordpress.com/2013/11/03/…【参考方案3】:您需要一个服务包装器来运行 Jar 文件。
有 init.d here. 或 systemd (ubuntu 16+) here 的示例和说明
【讨论】:
只是为使用 Ubuntu 16+ 的人提供的信息。这不适用于 Ubuntu 16+。您将收到“无法启动 MyService.service:未找到 Unit MyService.service” systemd 版本很棒:D以上是关于在linux中启动一个类似服务的jar文件[关闭]的主要内容,如果未能解决你的问题,请参考以下文章