centos7 运行java程序,设置开机自动运行
在CentOS 7中,可以通过以下几种方法来设置Java程序开机自动启动:
方法一:使用systemd服务
systemd是Linux系统中广泛使用的初始化系统和系统管理守护进程,可以用来管理开机启动项。
- 创建一个服务文件
创建一个新的service文件,例如ruoyi-admin.service,路径为/etc/systemd/system/:
sudo nano /etc/systemd/system/ruoyi-admin.service
- 编辑服务文件
在文件中添加以下内容,根据实际情况修改:
[Unit]
Description=ruoyi-admin
After=network.target
[Service]
User=root
Group=root
WorkingDirectory=/home/zhao/programs/ruoyi
ExecStart=/usr/bin/java -jar /home/zhao/programs/ruoyi/ruoyi-admin.jar
SuccessExitStatus=143
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
- Description:服务的描述。
- After:指定该服务在
- network.target之后启动。
- User和Group:运行该服务的用户和组。
- WorkingDirectory:工作目录。
- ExecStart:启动Java程序的命令。
- SuccessExitStatus:程序正常退出的状态码。
- Restart:设置服务在失败后自动重启。
- RestartSec:重启前的等待时间。
- 重新加载systemd配置并启动服务
sudo systemctl daemon-reload
sudo systemctl start ruoyi-admin
- 设置开机自启
sudo systemctl enable ruoyi-admin
- 检查服务状态
sudo systemctl status ruoyi-admin
方法二:使用crontab
- 编辑crontab文件
crontab -e
- 添加开机启动项
- 在文件末尾添加以下行:
@reboot /usr/bin/java -jar /home/zhao/programs/ruoyi/ruoyi-admin.jar
- 这里的@reboot表示在系统启动时执行该命令。
- 保存并退出
- 保存文件并退出编辑器,crontab会自动重新加载配置。
方法三:使用rc.local
- 编辑rc.local文件
sudo vi /etc/rc.d/rc.local
- 添加启动命令
- 在文件末尾添加以下行:
/usr/bin/java -jar /home/zhao/programs/ruoyi/ruoyi-admin.jar
- 保存并退出
- 保存文件并退出编辑器。
- 赋予rc.local执行权限
sudo chmod +x /etc/rc.d/rc.local
- 启动rc.local服务
sudo systemctl start rc-local
- 设置开机自启
sudo systemctl enable rc-local
注意事项
- 路径问题:确保所有路径都是绝对路径,包括Java程序的路径和JAR文件的路径。
- 权限问题:确保运行Java程序的用户有权限访问相关文件和目录。
- 日志记录:可以将程序的输出和错误信息重定向到日志文件,方便后续排查问题。例如:
/usr/bin/java -jar /home/zhao/programs/ruoyi/ruoyi-admin.jar > /path/to/your/logfile.log 2>&1 &
- JAR文件的可执行性:如果使用的是可执行JAR文件,确保其MANIFEST文件中指定了Main-Class属性。
以上方法可以根据你的需求和使用习惯选择其中一种来实现Java程序的开机自动启动。