首页 > 系统相关 >Linux系统下将java程序开机自启

Linux系统下将java程序开机自启

时间:2023-08-05 16:45:59浏览次数:33  
标签:systemd Java 程序 program Linux 自启 java your

Linux系统下将java程序开机自启

在Linux环境下,可以通过将Java程序配置为系统服务(systemd服务)来实现开机自启动。使用systemd可以很方便地管理和控制后台服务,包括Java程序。以下是一个简单的步骤来配置Java程序为systemd服务:

1. 编写启动脚本

创建一个脚本文件,用于启动您的Java程序。在脚本中,需要指定Java可执行文件路径和您的Java程序的jar包路径。例如,创建一个名为your_java_program.sh的脚本文件,并在其中写入以下内容:

bashCopy code#!/bin/bash

# Java可执行文件路径
JAVA_EXECUTABLE=/usr/bin/java

# Java程序的jar包路径
JAR_PATH=/path/to/your/java/program.jar

# 启动Java程序
$JAVA_EXECUTABLE -jar $JAR_PATH

2. 将脚本文件移动到适当的位置

将上述脚本文件移动到/usr/local/bin/或其他适合的目录,并赋予执行权限。

bashCopy codesudo mv your_java_program.sh /usr/local/bin/
sudo chmod +x /usr/local/bin/your_java_program.sh

3.创建systemd服务单元文件

/etc/systemd/system/目录下创建一个以.service结尾的文件,用于定义您的Java程序作为systemd服务的配置。

bashCopy code
sudo nano /etc/systemd/system/your_java_program.service

在打开的文件中写入以下内容,并保存:

makefileCopy code[Unit]
Description=Your Java Program
After=network.target

[Service]
ExecStart=/usr/local/bin/your_java_program.sh
Type=simple
User=your_username
Group=your_groupname
Restart=on-failure

[Install]
WantedBy=multi-user.target

在上述内容中,请注意替换以下内容:

  • Your Java Program:服务的描述信息。
  • /usr/local/bin/your_java_program.sh:前面创建的启动脚本的路径。
  • your_username:应该用于运行Java程序的用户名。
  • your_groupname:应该用于运行Java程序的用户组名。

5. 启动服务并设置开机自启

bashCopy codesudo systemctl start your_java_program
sudo systemctl enable your_java_program

现在,您的Java程序已经作为systemd服务启动,并配置为在Linux系统开机时自动启动。您可以使用systemctl命令来管理和监控您的Java程序服务,例如停止、重启、查看状态等。

注意:以上步骤假设您已经正确安装了Java运行时环境(JRE)并配置了环境变量。如果Java未正确安装或配置,您需要先安装并设置正确的环境变量。

标签:systemd,Java,程序,program,Linux,自启,java,your
From: https://www.cnblogs.com/jonil/p/17608163.html

相关文章

  • linux---设置允许流量转发
    linux---设置允许流量转发临时生效:#方法1(必须使用root账户)echo1>/proc/sys/net/ipv4/ip_forward#方法1变种(有sudo权限即可)echo1|sudotee/proc/sys/net/ipv4/ip_forward#方法2sudosysctl-wnet.ipv4.ip_forward=1方法1和方法2效果一样永久生效:修改/et......
  • linux磁盘管理
    1、fdisk-l      查看所有磁盘信息n      创建新分区d       删除分区p       列出分区表w       保存分区表并退出e        扩展分区2、partprobe    刷新分区表3、df-T     ......
  • java练习
    packageuse;//importcom.x.Dog;需要用到那个类,就导入那个类importcom.x.*;//导入包下的所有类publicclassuser{publicstaticvoidmain(String[]args){Dogdog=newDog();com.y.Dogdog1=newcom.y.Dog();"hello".equal......
  • 随笔(二十六)『SpringBoot + Vue 简单部署到Linux』
    1、安装docker1.1、卸载系统之前的dockersudoyumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\......
  • java中ConcurrentHashMap底层原理 - 面试宝典
    ConcurrentHashMap是Java中的线程安全的哈希表实现。它通过使用分段锁(Segment)来实现并发访问的高效率。下面是ConcurrentHashMap的底层原理:数据结构:ConcurrentHashMap内部由一个Segment数组和若干个哈希桶(HashEntry)组成。每个Segment包含一个哈希桶数组和一个共享的锁。每个哈希桶......
  • linux怎么查看文件夹多大
    方法:1、利用ls命令查看,该命令可将结果以KB、MB等为单位进行显示,语法为“ls-ll”或“ls-lh”;2、利用“du-h–max-depth=1*”命令,该命令可查看当前目录下的各个文件和文件夹的大小;3、利用“du-sh”命令,可查看当前文件夹的总大小;4、利用“du-h–max-depth=0*”命令,可查看直接......
  • 深度剖析JAVA 函数式接口
    一、什么是函数式接口:函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。可以有多个非抽象方法。为了避免别人在这个接口中增加......
  • Linux git mirror站点
    由于kernel的官网站点和Github镜像下载都很慢,于是想到找一下国内镜像站点。kernel.org有个GitmirroravailableinBeijing,地址为https://kernel.source.codeaurora.cn/,但是已经失效,具体说明看这里。kernel.org上还有个知道如何建立kerelmirror的指导页面,但是没有提供......
  • 输入字符串查找字符串中都有什么组成 java代码如下
    importjava.util.Scanner;publicclassDemo02{publicstaticvoidmain(String[]args){System.out.println("请输入一个字符串:");Stringcc=newScanner(System.in).nextLine();char[]arr=cc.toCharArray();intcoun......
  • Linux命令
    ncnc-help:查看nc命令支持的参数nc-lkip(机器的ip地址或者映射)port(端口号):在此ip机器上启动监听服务,服务端nvip(要通信的机器)port(要通信的机器开启的端口号):与此ip机器建立通信连接,客户端......