以设置自动启动sentinel-dashboard作为案例
要在CentOS 7上设置开机启动一个Java程序,你可以按照以下步骤进行操作:
1. 进入应用程序的目录
cd /usr/local
vim sentinel-dashboard.sh
2. 在sentinel-dashboard.sh 文件中 输入启动脚本
nohup java -Dserver.port=8090 -Dcsp.sentinel.dashboard.server=localhost:8090 -Dproject.name=sentinel-dashboard -jar /usr/local/sentinel-dashboard.jar >/usr/local/log/out.log 2>&1 &
解释一下,这里nohup 是表示后台运行程序,2>&1:在这里,2代表标准错误输出,而1代表标准输出。2>&1的意思是“将标准错误输出重定向到标准输出的同一位置”。由于标准输出已经被重定向到out.log文件,因此这实际上意味着标准错误输出也被重定向到该文件。
注意:我的Centos配置了Java环境,单丝放在 rc.local 中执行却不起作用,这点我没明白,所以上述命令跑一直失败,后来我猜想可能Java环境在这里失效,改成指定Java位置就可以了,服了
nohup /opt/software/jdk-17.0.9/bin/java -Dserver.port=8090 -Dcsp.sentinel.dashboard.server=localhost:8090 -Dproject.name=sentinel-dashboard -jar /usr/local/sentinel-dashboard.jar >/usr/local/log/out.log 2>&1 &
3. 给sentinel-dashboard.sh添加执行权限
chmod 700 sentinel-dashboard.sh
4. 试一下,看看能不能正常启动
sh sentinel-dashboard.sh
试了,可以访问
5 设置开机启动
编辑vim /etc/rc.d/rc.local,在这个文件的最后面加上
vim /etc/rc.d/rc.local
6、最后给 /etc/rc.d/rc.local 文件设置可执行权限才会生效
chmod +x /etc/rc.d/rc.local
7. 重启服务
reboot
8. 开机自启动失败,问题排查
如果遇到开机启动失败问题可以运行下面这些命令进行调试,查看是否正常启动,如果status如下图这样说明启动成功了,如果失败的话,可以看看本文的第3步,检查是不是环境问题
systemctl status rc-local.service
systemctl start rc-local.service
systemctl stop rc-local.service
systemctl restart rc-local.service