概述
女主宣言
最近小编在项目中遇到了一个问题,打包的jar文件需要作为服务来使用,但是如何才能保证让jar文件开机自启动呢。小编使用的是Ubuntu的系统,所以查阅了相关资料之后,整理了此篇文章,供大家参考使用。在本文中,我们将使用示例服务包装器,在Ubuntu系统中以服务的方式运行JAR文件。包括自动启动和日志提示。
PS:丰富的一线技术、多元化的表现形式,尽在“HULK一线技术杂谈”,点关注哦!
假设您有一个JAR文件,您需要将它作为一个服务运行。此外,您希望它在系统重新启动时自动启动。那我们该怎么做呢?
其实,Ubuntu有一个内置的机制来创建自定义服务,使它们能够在系统启动时作为服务启动/停止它们。在这篇文章中,我将分享一个简单而优雅的方法来为您的JAR文件创建一个服务包装器,以便您可以将它作为一个服务运行。我们开始吧。
1
创建一个服务
> sudo vim /etc/systemd/system/my-webapp.service
复制/粘贴以下内容到文件 /etc/systemd/system/my-webapp.service 中:
[Unit]
Description=My Webapp Java REST Service
[Service]
User=ubuntu
# The configuration file application.properties should be here:
#修改为你的工作目录
WorkingDirectory=/home/ubuntu/workspace
#要执行程序的路径
#调用jar文件的shell执行文件
fileExecStart=/home/ubuntu/workspace/my-webapp
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
2
创建调用服务的Bash脚本
下面是调用JAR文件 my-webapp 的bash脚本:
#!/bin/sh
sudo /usr/bin/java -jar my-webapp-1.0-SNAPSHOT.jar server config.yml
不要忘记给脚本授予可执行权限:
$ sudo chmod u+x my-webapp
3
启动服务
$ sudo systemctl daemon-reload
$ sudo systemctl enable my-webapp.service
$ sudo systemctl start my-webapp
$ sudo systemctl status my-webapp
4
设置日志记录
服务设置好之后,我们还需要记录一下日志信息,以供有问题的时候查阅。这里我们使用Linux的新日志系统Journald。
简单介绍下Journald,它是Linux的新日志系统。Journald和systemd绑定。 Journald使用journalctl工具读取日志,默认参数下显示所有日志内容。journalctl不是本文的重点,感兴趣的读者可以自行查阅资料去了解。
我们简单介绍两个参数,使用 -f 选项可以查看实时日志,使用 -n 可以指定日志行数,使用 -u 指定特定单元(同--unit)。
首先执行该命令,
$ sudo journalctl --unit=my-webapp
如果想查看实时日志的话,可以执行:
$ sudo journalctl -f -n 1000 -u spinal-webapp
停止服务:
$ sudo systemctl stop my-webapp
总结
以上就是在Ubuntu下以服务的方式来运行我们java程序的方式。看似很简单的一个功能,但是可以做出不简单的事情,毕竟可以让我们使用其他语言来实现服务。本文以java程序为例,仅仅是抛砖引玉。感兴趣的读者可以去尝试运行一下php、python等语言,或者CentOS、Debian等操作系统。
扫描下方二维码了解更多内容
最后
以上就是飞快百褶裙为你收集整理的在Ubuntu上以服务方式运行Java程序的全部内容,希望文章能够帮你解决在Ubuntu上以服务方式运行Java程序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复