Linux自启服务提示:systemd[1]: *.service: main process exited, code=exited, status=1问题

这两天一直在沉迷于配脚本,由于服务器很多,所以我都是从一台服务器上配置好的脚本直接copy到另一台服务器,按说完全一样的脚本一样的操作,那么应该是一样的执行结果
but, Gul’dan,代…我重启服务器后服务并没有正常启动,瓦特?
cd /lib/systemd/system目录,查看一下状态

systemctl status rocketmq.service

Linux自启服务提示:systemd[1]: *.service: main process exited, code=exited, status=1问题_第1张图片

可以看到状态是正常的,主要问题在这里

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!!!
直接把异常信息全部丢给它

Linux自启服务提示:systemd[1]: *.service: main process exited, code=exited, status=1问题_第2张图片

上面的回答和百度上搜到的差不多,很明显都不是这些问题,因为我直接运行脚本是可以启动的
所以继续灵魂拷问

Linux自启服务提示:systemd[1]: *.service: main process exited, code=exited, status=1问题_第3张图片
它判断认为是环境变量的问题,我一看也觉得它说得对!同样的服务同样的脚本同样的操作如果不能正常操作,那只能是所处的环境有问题
下面这个就是它给的建议

[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

就放到最上面就可以了
在这里插入图片描述

然后重启服务,再次搞定!!!
真特么心累啊!

你可能感兴趣的:(linux,运维,服务器)