在Ubuntu 上实现 JAR 包的自启动

在 Ubuntu 上实现 JAR 包的自启动,可以通过以下几种方法:

方法一:使用 systemd

  1. 创建一个服务文件
    /etc/systemd/system/ 目录下创建一个新的服务文件,例如 myapp.service

    sudo nano /etc/systemd/system/myapp.service
    

    文件内容可以如下:

    [Unit]
    Description=My Java Application[Service]
    ExecStart=/usr/bin/java -jar /path/to/your/app.jar
    Restart=always
    User=yourusername
    WorkingDirectory=/path/to/your[Install]
    WantedBy=multi-user.target
    

    /path/to/your/app.jar 替换为你的 JAR 包的实际路径。

  2. 重新加载 systemd 配置

    sudo systemctl daemon-reload
    
  3. 启用并启动服务

    sudo systemctl enable myapp.service
    sudo systemctl start myapp.service
    
  4. 检查服务状态

    sudo systemctl status myapp.service
    
  5. 停止和禁用服务
    要停止你创建的服务,可以使用以下命令:

    sudo systemctl stop myapp.service
    

    如果你想禁用服务,使其在系统启动时不再自动启动,可以使用:

    sudo systemctl disable myapp.service
    

这会显示服务的当前状态以及日志信息,帮助你了解它是否正常运行。

方法二:使用 cron(不推荐用于长时间运行的服务)

如果你希望在系统启动时运行你的 JAR 包,可以使用 cron@reboot 选项。

  1. 编辑 crontab

    crontab -e
    
  2. 添加以下行

    @reboot /usr/bin/java -jar /path/to/your/app.jar
    

    保存并退出。

方法三:使用 init.d(旧方法)

虽然现在 systemd 是主流,但你也可以使用 init.d 方法。

  1. 创建一个启动脚本

    sudo nano /etc/init.d/myapp
    

    内容示例:

    #!/bin/sh
    java -jar /path/to/your/app.jar
    
  2. 赋予执行权限

    sudo chmod +x /etc/init.d/myapp
    
  3. 使用 update-rc.d 添加启动项

    sudo update-rc.d myapp defaults
    

注意事项

  • 确保 Java 已安装并且路径正确。
  • 运行 JAR 包的用户应该有权限访问 JAR 文件和所需的资源。
  • 你可以通过日志文件捕获输出,帮助调试启动过程中的问题。

通过上述任一方法,你的 JAR 包就能在 Ubuntu 启动时自启动了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/59553.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Object 内部类 异常

Objbect类 java提供了Object,它是所有类的父类,每个类都直接或间接的继承了Object类,因此Object类通常被称为超类 当定义一个类时,如果没有使用extends关键字直接去指定父类继承,只要没有被继承的类,都是会默认的去继承Object类,超类中定义了一些方法 方法名称方法说明boole…

SQLite -- 一个遵守君子协定的数据库

用惯了Oracle、PostgreSQL等数据库,今天接触到SQLite,简单尝试了下使用,顿感震惊!!! 与传统的关系型数据库(如 MySQL、PostgreSQL 等)相比,它的约束是真的宽松。具体来说…

Linux 高级IO

学习任务: 高级 I/O:select、poll、epoll、mmap、munmap 要求: 学习高级 I/O 的用法,并实操 1、高级 I/O: 前置知识: 阻塞、I/O 多路复用 PS: 非阻塞 I/O ------ 非阻塞 I/O 阻塞其实就是进入了休眠状态&am…

JAVA WEB — HTML CSS 入门学习

本文为JAVAWEB 关于HTML 的基础学习 一 概述 HTML 超文本标记语言 超文本 超越文本的限制 比普通文本更强大 除了文字信息 还可以存储图片 音频 视频等标记语言 由标签构成的语言HTML标签都是预定义的 HTML直接在浏览器中运行 在浏览器解析 CSS 是一种用来表现HTML或XML等文…

ASRPRO 日历2

为避免与天问的ID冲突 ID前加10000 为使识别更顺畅 将 日期-月份 12月21日 合并 ;时间 10点25分 合并 通过串口获取日期 为使用常用词 计倒时 下周 明天,需通过串口获取当前日期 + 命令词 增加 我的 A的 B的 关系词 与任务 生日 买菜 增加 可自定义 任务 执行程序 双进…

Linux——Linux基础指令

Linux基本指令 文章目录 Linux基本指令1. 基础五指令(1) whoami(2) who(3) pwd(4) ls(5) clear 2. 文件常见命令(1) touch(2) mkdir(3) cp(4) mv(5) rm(6) cd 3. 常见IO命令(1) cat(2) tac(3) head(4) tail(5) more(6) less 4. 拓展命令(1) man手册(2) which(3) file(4) date(5…

雷池社区版 7.1.0 LTS 发布了

LTS(Long Term Support,长期支持版本)是软件开发中的一个概念,表示该版本将获得较长时间的支持和更新,通常包含稳定性、性能改进和安全修复,但不包含频繁的新特性更新。 作为最受欢迎的社区waf&#xff0c…

出海企业如何借助云计算平台实现多区域部署?

云计算de小白 如需进一步了解,请单击链接了解有关 Akamai 云计算的更多信息 在本文中我们将告诉大家如何在Linode云计算平台上借助VLAN快速实现多地域部署。 首先我们需要明确一些基本概念和思想: 部署多区域 VLAN 为了在多区域部署中在不同的 VLAN …

RDD转换算子:【map】

功能: 对RDD中每个元素调用一次参数中的函数,并将每次调用的返回值放入一个新的RDD中(一对一) 语法: def map(self , f: T -> U ) -> RDD[U]f:代表参数是一个函数 T:代表RDD中的每个元…

如何更好的crud

一、DDD是什么? DDD全名叫做Domins drives Design;领域驱动设计。再说的通俗一点就是:通过领域建模的方式来实现软件设计。 问题来了:什么是软件设计?为什么要进行软件设计? 软件开发最主要的目的就是&…

AI赋能酒店设计|莱佛士学生成功入围WATG设计大赛

近日,由Wimberly Allison Tong & Goo(WATG)主办的“用人工智能重新构想酒店行业的未来”设计比赛正式拉开帷幕。这场设计比赛,不仅是为了庆祝WATG即将步入80周年,更是为了激发年轻设计师们的创造力和探索实践精神&…

Netty原来就是这样啊(二)

前言: Netty其实最大的特点就是在于对于对NIO进行了进一步的封装,除此以外Netty的特点就是在于其的高性能 高可用性,下面就会一一进行说明。 高性能: 我在Netty原来就是这样啊(一)-CSDN博客 解释了其中的零拷贝的技术除此以外还有Reactor线程模型,这个Reactor线程模型的思想…

对于相对速度的重新理解

狭义相对论速度合成公式如下, 现在让我们尝试用另一种方式把它推导出来。 我们先看速度的定义, 常规的速度合成方式如下, 如果我们用速度的倒数来理解速度, 原来的两个相对速度合成, 是因为假定了时间单位是一样的&am…

idea 导入Spring源码遇到的坑并解决

1.下载相关文件 通过百度网盘分享的文件:Spring 链接:https://pan.baidu.com/s/1r9rkGOCaY9SFn9ecng5cIg?pwd8888 提取码:8888 2.配置gradle环境 gradle下载地址 需要翻墙下 https://services.gradle.org/distributions/ 我选择的是 grad…

红队-linux基础(1)

声明 通过学习 泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频,做出的文章如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 一.openssl 1、openssl passwd -1 123 openssl是一个开源的…

迈入国际舞台,AORO M8防爆手机获国际IECEx、欧盟ATEX防爆认证

近日,深圳市遨游通讯设备有限公司(以下简称“遨游通讯”)旗下5G防爆手机——AORO M8,通过了CSA集团的严格测试和评估,荣获国际IECEx及欧盟ATEX防爆认证证书。2024年11月5日,CSA集团和遨游通讯双方领导在遨游…

[Unity Demo]从零开始制作空洞骑士Hollow Knight第十八集补充:制作空洞骑士独有的EventSystem和InputModule

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、制作空洞骑士独有的EventSystem和InputModule总结 前言 hello大家好久没见,之所以隔了这么久才更新并不是因为我又放弃了这个项目,而…

你们要的App电量分析测试来了

Batterystats 是包含在 Android 框架中的一种工具,用于收集设备上的电池数据。您可以使用 adb 将收集的电池数据转储到开发计算机,并创建一份可使用 Battery Historian 分析的报告。Battery Historian 会将报告从 Batterystats 转换为可在浏览器中查看的…

<项目代码>YOLOv8 学生课堂行为识别<目标检测

YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv8具有更高的…

如何在家庭网络中设置静态IP地址:一份实用指南

在家庭网络环境中,IP地址扮演着至关重要的角色。大多数家庭用户依赖路由器的DHCP(动态主机配置协议)来自动分配IP地址,但在某些情况下,手动设置静态IP地址能为家庭网络带来更多的便利性与稳定性,尤其是在涉…