扫码阅读
手机扫码阅读
运维排查 | Systemd 之服务停止后状态为 failed
![](/theme/default/default/images/main/eye-open.png)
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
![](/theme/default/default/images/main/icon-jing.png)
咸鱼运维杂谈
扫码关注公众号
摘要
本文介绍了在CentOS 7中使用Systemd来管理服务的情况,特别是在软件没有提供Systemd管理方案或通过源码编译安装的情况下,需要手动编写Systemd服务文件(service 文件)。
作者尝试为通过源码编译安装的zookeeper编写Systemd服务文件,并说明了服务文件的结构和配置。服务文件包括[Unit]部分,描述了服务的启动顺序;[Service]部分,定义了启动和停止服务的命令和类型;[Install]部分,定义了如何安装配置文件以实现开机启动。
作者发现,在使用Systemd启动和停止zookeeper服务时,尽管服务操作命令本身执行成功,但是服务状态在停止后显示为failed。分析后发现,主进程在退出时返回的状态码是143,而不是预期的0。
作者解释了当zookeeper进程接收到SIGTERM信号时,会返回143作为退出状态码,这是由POSIX规范决定的。Systemd将此状态码解释为异常退出,而不是成功。
为了解决这个问题,作者在zookeeper的service文件中添加了SuccessExitStatus=143的配置,使得当服务进程以状态码143退出时,Systemd将其视为成功退出。
想要了解更多内容?
![](/theme/default/default/images/main/icon-jing.png)
咸鱼运维杂谈
扫码关注公众号
咸鱼运维杂谈的其他文章
加入社区微信群
与行业大咖零距离交流学习
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
软件研发质量管理体系建设
白皮书上线