在Linux系统中,Java程序可以通过多种方式实现开机自启动,以下是详细的步骤和说明:
使用Shell脚本和rc.local
文件
1、编写启动脚本:
创建一个shell脚本文件,例如run.sh
如下:
```bash
#!/bin/bash
JAVA_HOME=/usr/local/java/jdk1.8.0_161
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME
nohup java -jar /usr/local/java/test.jar > /dev/null 2>&1 &
```
保存并退出编辑器,然后赋予脚本可执行权限:
```bash
chmod +x /home/ruoyi/run.sh
```
2、修改rc.local
文件:
编辑/etc/rc.d/rc.local
文件:
```bash
vim /etc/rc.d/rc.local
```
在文件末尾添加一行,指定运行脚本的绝对路径:
```bash
/home/ruoyi/run.sh
```
保存并退出编辑器,然后赋予rc.local
文件可执行权限:
```bash
chmod +x /etc/rc.d/rc.local
```
使用Systemd服务
1、创建服务文件:
在/etc/systemd/system/
目录下创建一个新的服务文件,例如client.service
如下:
```ini
[Unit]
Description=Client Service
After=network.target
[Service]
Type=simple
ExecStart=/opt/jre/bin/java -jar /opt/agent-server-1.0-SNAPSHOT.jar /opt/client.conf
WorkingDirectory=/opt
User=root
Group=root
StandardOutput=null
StandardError=/opt/error.log
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
```
2、使配置生效并启用服务:
重新加载systemd配置:
```bash
sudo systemctl daemon-reload
```
设置服务开机自启动:
```bash
sudo systemctl enable client.service
```
立即启动服务:
```bash
sudo systemctl start client.service
```
使用Crontab
1、编辑Crontab文件:
使用以下命令编辑当前用户的crontab文件:
```bash
crontab -e
```
在文件末尾添加一行,指定在系统重启时运行脚本:
```bash
@reboot /home/ruoyi/run.sh
```
保存并退出编辑器。
手动重启Java程序
如果需要手动重启Java程序,可以使用以下命令:
1、查找Java程序的进程ID(PID):
```bash
ps -ef | grep test.jar
```
2、杀掉Java程序的进程:
```bash
kill -9 PID(例如1068)
```
3、重新启动Java程序:
```bash
nohup java -jar /home/ruoyi/test.jar > /dev/null 2>&1 &
```
通过以上方法,可以在Linux系统中实现Java程序的开机自启动,确保服务在系统重启后能够自动运行。
各位小伙伴们,我刚刚为大家分享了有关java linux自启动的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/71382.html