Java应用在Ubuntu平台以服务的方式运行

简介: 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/78342573 Java应用在Ubuntu平台以服务的方式运行版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/78342573

Java应用在Ubuntu平台以服务的方式运行

  • 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。

本文讲述在Ubuntu平台上通过使用服务封装器的方式,把JAR文件以服务的方式运行。读者可以了解器做法,包括自动启动的方式和日志技巧。

假设你有一个可执行的JAR文件,你需要以服务的方式运行这个JAR文件。而且,当系统重启时,希望这个服务能够实现开机自启动。

Ubuntu平台内建了一个创建自定义服务的机制,允许用户把应用程序以服务的方式启动或停止,同时还支持开机自启动。下面,我将分享怎样实现服务封装的方法,通过它把JAR文件封装为服务,并以服务的方式运行JAR文件。

1、创建一个服务

# sudo vim /etc/systemd/system/my-webapp.service

把以下内容复制粘贴到上面的文件中。

[Unit]
Description=My Webapp Java REST Service
[Service]
User=ubuntu
# The configuration file application.properties should be here:
#change this to your workspace
WorkingDirectory=/home/ubuntu/workspace
#path to executable. 
#executable is a bash script which calls jar file
ExecStart=/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、设置日志

首先,运行 sudo journalctl –unit=my-webapp
如果要查看实时日志,那么使用-f选项。

如果想查看部分,可以使用-n选项查看日志的指定行数。

# sudo journalctl -f -n 1000 -u my-webapp

使用-f选项查看最新的实时日志的输出:

# sudo journalctl -f -u my-webapp

要停止服务,执行:

# sudo systemctl stop my-webapp
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
4天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
28 3
|
1天前
|
Java
网页运行java程序cheerpj
网页运行java程序cheerpj
25 0
|
2天前
|
安全 Java 调度
Java线程:深入理解与实战应用
Java线程:深入理解与实战应用
18 0
|
2天前
|
Java
Java中的并发编程:理解和应用线程池
【4月更文挑战第23天】在现代的Java应用程序中,性能和资源的有效利用已经成为了一个重要的考量因素。并发编程是提高应用程序性能的关键手段之一,而线程池则是实现高效并发的重要工具。本文将深入探讨Java中的线程池,包括其基本原理、优势、以及如何在实际开发中有效地使用线程池。我们将通过实例和代码片段,帮助读者理解线程池的概念,并学习如何在Java应用中合理地使用线程池。
|
6天前
|
JavaScript Java 测试技术
基于Java的在线日语培训平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的在线日语培训平台的设计与实现(源码+lw+部署文档+讲解等)
23 0
|
6天前
|
JavaScript Java 测试技术
基于Java的驾考自主学习预约平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的驾考自主学习预约平台的设计与实现(源码+lw+部署文档+讲解等)
18 0
|
6天前
|
JavaScript Java 测试技术
基于Java的宠物服务平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的宠物服务平台的设计与实现(源码+lw+部署文档+讲解等)
16 1
|
6天前
|
JavaScript Java 测试技术
基于Java的直播电商交流平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的直播电商交流平台的设计与实现(源码+lw+部署文档+讲解等)
13 0
|
6天前
|
JavaScript Java 测试技术
基于Java的中学生课后服务的信息管理与推荐的设计与实现(源码+lw+部署文档+讲解等)
基于Java的中学生课后服务的信息管理与推荐的设计与实现(源码+lw+部署文档+讲解等)
24 2
|
6天前
|
JavaScript Java 测试技术
基于Java的珠江学院大学生自愿者服务网的设计与实现(源码+lw+部署文档+讲解等)
基于Java的珠江学院大学生自愿者服务网的设计与实现(源码+lw+部署文档+讲解等)
25 0