当前位置: 首页 > news >正文

一个可以独立运行的java应用程序_在Ubuntu上将Java应用程序作为服务运行

假设您有一个JAR文件,需要将其作为服务运行。此外,如果系统重新启动,您希望它自动启动。

Ubuntu具有内置的机制来创建自定义服务,从而使它们能够在系统启动时启动并作为服务启动/停止。在本文中,我将分享一种简单优雅的方法来为JAR文件创建服务包装,以便您可以将其作为服务运行。开始了。

8e39b5db7fc9a6af66fc9dbf1e98be09.png

步骤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:

#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文件的bash脚本: my-webapp

#!/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

最后,开发这么多年我也总结了一套学习Java的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。

45ed2badeb4a5b6f6b76dfbc59b880bd.png
39d092efec1d5ee5f1b5d39e941c4b6d.png

相关文章:

  • Commons-net FTPClient completePendingCommand()经常使程序死掉的原因分析以及解决方式
  • mysql数据的导出与导入_浅析MySQL数据的导出与导入知识点
  • Nebula3渲染层: Graphics
  • go分析和kegg分析_一些GO及KEGG分析的知识
  • iPhone对OpenGL ES的支持程度!
  • XACT与X3DAudio整合的问题
  • mysql的分离搭建_MySQL 读写分离环境搭建
  • Thanksgiving!——2008博文视点的光荣归于支持我们的读者、专家们
  • ai文字变成路径_新手必备!AI常用快捷键和一些小技巧
  • 基于wince的网络音视频通信(简单易明版)
  • lvs dr 链接mysql_集群lvs-dr应用之wordpress(共享后台MySQL存储)
  • Nebula3绘制2D纹理
  • python 条件语句知识讲解_Python 知识要点:if 条件语句
  • 完成网络传真,网络扫描。
  • python做爬虫 怎么样效率最高_python如何提升爬虫效率
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • AHK 中 = 和 == 等比较运算符的用法
  • Java|序列化异常StreamCorruptedException的解决方法
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • Vue小说阅读器(仿追书神器)
  • 大型网站性能监测、分析与优化常见问题QA
  • 复杂数据处理
  • 简单实现一个textarea自适应高度
  • 来,膜拜下android roadmap,强大的执行力
  • 盘点那些不知名却常用的 Git 操作
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 赢得Docker挑战最佳实践
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • #include<初见C语言之指针(5)>
  • (02)vite环境变量配置
  • (1)bark-ml
  • (11)MATLAB PCA+SVM 人脸识别
  • (2)Java 简介
  • (a /b)*c的值
  • (翻译)terry crowley: 写给程序员
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (接口封装)
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (转)Windows2003安全设置/维护
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .net wcf memory gates checking failed
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .NET 分布式技术比较
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .NET程序员迈向卓越的必由之路
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • ??javascript里的变量问题
  • [.net] 如何在mail的加入正文显示图片
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [BUUCTF]-PWN:[极客大挑战 2019]Not Bad解析
  • [dfs] 图案计数
  • [IE编程] 如何设置IE8的WebBrowser控件(MSHTML) 的渲染模式
  • [JavaWeb学习] Spring Ioc和DI概念思想