是否可以判断某个文件是否与某个服务关联,或者哪些配置文件与某个服务关联?

是否可以判断某个文件是否与某个服务关联,或者哪些配置文件与某个服务关联?

假设我有一个文件,/etc/foo.conf我想知道实际使用什么服务/etc/foo.conf。或者,假设我有一个名为的服务foo.service,并且我想知道该服务使用哪些配置文件。有没有办法从文件中确定哪些服务使用该文件,或者确定每个服务使用哪些配置文件?

我会假设fuser或者lsof会给我我想要的信息;但是,/etc/rsyslog.conf即使 rsyslog 已启用并正在运行,运行 fusionr on也不会返回任何内容。

对于更具体的示例,这里的一些输出根本没有告诉我有关服务使用哪些配置文件的信息:

[user@host ~]# systemctl cat rsyslog
# /usr/lib/systemd/system/rsyslog.service
[Unit]
Description=System Logging Service
;Requires=syslog.socket
Wants=network.target network-online.target
After=network.target network-online.target
Documentation=man:rsyslogd(8)
Documentation=https://www.rsyslog.com/doc/

[Service]
Type=notify
EnvironmentFile=-/etc/sysconfig/rsyslog
ExecStart=/usr/sbin/rsyslogd -n $SYSLOGD_OPTIONS
UMask=0066
StandardOutput=null
Restart=on-failure

# Increase the default a bit in order to allow many simultaneous
# files to be monitored, we might need a lot of fds.
LimitNOFILE=16384

[Install]
WantedBy=multi-user.target
;Alias=syslog.service

[user@host ~]# cat /etc/sysconfig/rsyslog
# Options for rsyslogd
# Syslogd options are deprecated since rsyslog v3.
# If you want to use them, switch to compatibility mode 2 by "-c 2"
# See rsyslogd(8) for more details
SYSLOGD_OPTIONS=""

答案1

不。此类文件的“所有权信息”不存在。相反,“服务”只是可执行文件,可以打开它们有权访问的任何文件 - 因此也没有固有的告诉服务将读取哪些文件来加载配置。

您所能做的就是阅读文档。

相关内容