这两天一直在沉迷于配脚本,由于服务器很多,所以我都是从一台服务器上配置好的脚本直接copy到另一台服务器,按说完全一样的脚本一样的操作,那么应该是一样的执行结果
but, Gul’dan,代…我重启服务器后服务并没有正常启动,瓦特?
cd /lib/systemd/system目录,查看一下状态
systemctl status rocketmq.service
可以看到状态是正常的,主要问题在这里
Nov 30 11:59:27 test-database systemd[1]: rocketmq.service: main process exited, code=exited, status=1/FAILURE
Nov 30 11:59:27 test-database systemd[1]: Unit rocketmq.service entered failed state.
Nov 30 11:59:27 test-database systemd[1]: rocketmq.service failed.
难道是我脚本有问题?于是我手动启动了一下脚本,正常启动,排除脚本问题
然后百度,不得不说百度越来越垃圾了,我现在都懒得说它了
爬墙谷歌,还是没找到有用的答案
放终极大招,请万能的ChatGPT!!!
直接把异常信息全部丢给它
上面的回答和百度上搜到的差不多,很明显都不是这些问题,因为我直接运行脚本是可以启动的
所以继续灵魂拷问
它判断认为是环境变量的问题,我一看也觉得它说得对!同样的服务同样的脚本同样的操作如果不能正常操作,那只能是所处的环境有问题
下面这个就是它给的建议
[Unit]
Description=RocketMQ Service
[Service]
Environment="JAVA_HOME=/path/to/your/java"
Environment="ROCKETMQ_HOME=/usr/local/rokectmq/rocketmq-all-4.7.0-bin-release"
ExecStart=/usr/local/rokectmq/rocketmq-all-4.7.0-bin-release/bin/start.sh
[Install]
WantedBy=multi-user.target
按照它的建议在里面加上Environment,然后重新加载一下开机配置
sudo systemctl daemon-reload
sudo systemctl restart rocketmq
reboot重启服务器
查看进程 ps -ef|grep mq
搞定!感谢GPT!!!
我向众神祈祷,众神传达的都是你的名字:GPT!!!
发现新的问题,在另外一台服务器上这样操作了但是还是提示这个异常,是的,这个服务器环境变量配置得一塌糊涂,但是因为不是我配置的我也不敢动
我们直接解决问题就行,查看当前服务器环境变量路径
echo $PATH
可以看到是下面这样的
把这个路径加入到我们的start.sh中
export PATH=/usr/local/java/jdk1.8.0_221/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
就放到最上面就可以了
然后重启服务,再次搞定!!!
真特么心累啊!