在Ubuntu上以服务方式运行Java程序
2017-10-17 00:00
295 查看
女主宣言
最近小编在项目中遇到了一个问题,打包的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等操作系统。
扫描下方二维码了解更多内容
相关文章推荐
- 使用apache daemon让java程序在unix系统上以服务方式运行
- Java应用在Ubuntu平台以服务的方式运行
- 使用apache daemon让java程序在unix系统上以服务方式运行
- 使用apache daemon让java程序在unix系统上以服务方式运行
- Linux(Ubuntu)下,让Swing和Swt编写的Java桌面程序运行
- ubuntu下运行java程序实例
- [VB.NET]VB.net有窗体程序如何以系统服务方式运行?
- 通过编程来让企业服务以服务程序方式运行
- ubuntu 服务管理运行程序 sysv-rc-conf
- 通过编程来让企业服务以服务程序方式运行
- 用程序设置window服务的运行状态及启动方式
- Java程序作为服务程序运行
- 让程序 exe 以系统服务的方式运行
- Java程序以后台方式在Linux上运行(nohup命令)
- 关于java程序的运行方式.
- ubuntu下用jsvc把java程序做为linux服务启动
- 关于9月13号 新版本Ubuntu更新后eclipse无法运行Java程序的解决办法
- 通过编程来让企业服务以服务程序方式运行
- 控制台方式运行java程序示例
- 抛砖引玉:在Editplus下配置编译和运行java程序的快捷方式