解决SELinux is preventing systemd from read access on the file AB.sevice
-
问题描述
最近在公司做一个软件迁移的工具时,将软件的服务迁移之后,使用systemctl enable AB.service
时报错Failed to enable unit: Unit file *** does not exist
。 -
排查过程
查看了/etc/systemd/system/ 下面的服务文件,文件存在,于是执行systemctl daemon-reload,发现还是不行。
后查看系统日志【/var/log/message】发现报错信息SELinux is preventing systemd from read access on the file AB.sevice
,定位问题为 SELinux 阻止 systemd 对文件AB.sevice进行读取访问。 -
最终解决方案
# SELinux正在阻止systemd对文件AB.sevice进行读取访问。
# 可以先暂时禁用SELinux ,使用命令
setenforce 0
也可直接在配置文件【/etc/sysconfig/selinux】中设置SELinux=disabled,配置后需要重启计算机,如果没有时间重启可以使用setenforce 0
暂时停止。
禁用SELinux 之后服务可以正常找到,到现在还不知道SELinux为什么要阻止对文件进行读取访问。有大佬知道的望评论指点迷津。