systemctl自动启动失败的原因排查

By | 2018年12月6日

1.系统环境:

Centos 7.1 装有Tomcat和Nginx

2.问题描述

已经在系统中设置了tomcat和nginx服务的自动启动,已经通过systemctl is-enabled tomcat和systemctl is-enabled nginx验证过

系统启动后手动执行systemctl start tomcat和systemctl start nginx可以启动tomcat和nginx

系统重启后两者不会自动启动

3.排查方式

系统启动之后(不要手动执行systemctl start xxxx),通过systemctl status tomcat 和systemctl status nginx 去查看服务状态

根据信息去找出问题的原因.我的服务器没有启动成功是因为tomcat程序所在的目录,和nginx下面网站的目录不存在(都在/home下面)

通过df证明home已经挂载,而且cd到/home下面,可以看到文件是存在的.

通过查看/etc/fstab,发现挂载的配置并没有写在该文件中,应该是系统启动tomcat和nginx的时候,自动挂载没有完成

4.问题解决

将磁盘的挂载配置到/etc/fstab中,重新启动,问题解决

后来发现,磁盘挂载的信息,是通过一个脚本实现的,而脚本是在rc.local中执行调用的.