jar包项目自启动设置ubuntu
以下是使用 systemd
在 Ubuntu 系统中以 root
用户设置该 JAR 包自启动的步骤:
1. 创建 systemd 服务配置文件
打开终端,使用文本编辑器创建一个新的服务配置文件:
bash
sudo nano /etc/systemd/system/admin.service
在文件中输入以下内容:
ini
[Unit]
Description=admin JAR Service
After=network.target[Service]
User=root
WorkingDirectory=/usr/local/admin
ExecStart=/usr/bin/java -jar admin.jar
SuccessExitStatus=143
Restart=always
RestartSec=5
StandardOutput=append:/usr/local/admin/logs/app.log
StandardError=append:/usr/local/admin/logs/app.log[Install]
WantedBy=multi-user.target
说明:
Description
:对服务的简单描述。After=network.target
:表示在网络服务启动后再启动该服务。User=root
:指定以root
用户运行服务。WorkingDirectory
:设置工作目录为 JAR 包所在目录。ExecStart
:定义启动 JAR 包的命令。SuccessExitStatus
:允许正常退出的状态码。Restart=always
:无论何种原因导致服务停止,都自动重启服务。RestartSec=5
:设置服务重启的间隔时间为 5 秒。StandardOutput
和StandardError
:将标准输出和错误输出都追加到指定的日志文件中(需先确保/usr/local/admin/logs
目录存在,可使用sudo mkdir -p /usr/local/admin/logs
创建 )。WantedBy=multi-user.target
:在多用户模式下自动启动服务。
2. 重新加载 systemd 配置
bash
sudo systemctl daemon-reload
这一步是让 systemd
重新读取新创建或修改后的服务配置文件。
3. 启动服务
bash
sudo systemctl start admin.service
启动服务后,可以通过以下命令查看服务状态,确认是否启动成功:
bash
sudo systemctl status admin.service
如果服务启动正常,会显示类似 active (running)
的信息。
4. 设置开机自启动
bash
sudo systemctl enable admin.service
执行该命令后,系统在下次开机时会自动启动 admin.service
服务,即自动运行对应的 JAR 包。
虽然可以使用 root
用户来设置和运行服务,但从安全角度考虑,建议创建一个专门的普通用户来运行 JAR 包,以降低安全风险。如果后续需要切换用户,可以参考之前回复中创建普通用户并调整权限的相关内容 。