1.创建一个新的systemd服务文件。例如,你可以创建一个名为myjar.service
的文件在/etc/systemd/system/
目录下。
2.在myjar.service
文件中,添加以下内容(根据你的具体需求修改):
[Unit]
Description=My Java JAR Service
After=network.target
[Service]
ExecStart=nohup /usr/lib/jvm/java-11-openjdk-amd64/bin/java -jar /opt/XXX.jar &
Restart=on-failure
User=root
Group=root
[Install]
WantedBy=default.target
脚本解释:
[Unit] 部分
Description=My Java JAR Service
描述服务的简短说明。在这个例子中,它表示这是一个Java JAR文件的服务。
After=network.target
这个服务应该在网络目标(即网络可用)之后启动。确保服务在尝试进行网络操作之前网络已经启动。
[Service] 部分
ExecStart=nohup /usr/lib/jvm/java-11-openjdk-amd64/bin/java -jar /opt/XXX.jar &
当服务启动时,要执行的命令。在这个例子中,它使用/usr/lib/jvm/java-11-openjdk-amd64/bin/java来执行一个JAR文件。你需要将/opt/XXX.jar替换为你的JAR文件的实际路径。
Restart=on-failure
如果服务进程退出并返回一个非零状态码(表示失败),则systemd会自动重启它。
User=yourusername
以哪个用户的身份运行服务。你需要将yourusername替换为实际的用户名。
Group=yourgroupname
以哪个组的身份运行服务。你需要将yourgroupname替换为实际的组名。
[Install] 部分
WantedBy=default.target
这告诉systemd将此服务链接到default.target。在大多数系统上,default.target是一个别名,通常指向multi-user.target或graphical.target,具体取决于系统是否正在运行图形界面。将服务链接到default.target意味着当系统启动到默认运行级别时,该服务也将被启动
3.保存并关闭文件。
4.重新加载systemd配置:sudo systemctl daemon-reload
5.启用服务以使其在开机时启动:sudo systemctl enable myjar.service
6.现在你可以手动启动、停止或重启服务:
- 启动:
sudo systemctl start myjar.service
- 停止:
sudo systemctl stop myjar.service
- 重启:
sudo systemctl restart myjar.service
- 查看状态:
sudo systemctl status myjar.service