파일이 있고 /etc/foo.conf
실제로 어떤 서비스가 사용되는지 알고 싶다고 가정해 보겠습니다 /etc/foo.conf
. 또는 호출된 서비스가 있고 foo.service
해당 서비스가 어떤 구성 파일을 사용하는지 알고 싶다고 가정해 보겠습니다 . 파일에서 해당 파일을 사용하는 서비스를 확인하거나 각 서비스가 사용하는 구성 파일을 확인하는 방법이 있습니까?
fuser
둘 중 하나가 lsof
내가 원하는 정보를 제공할 것이라고 가정합니다 . 그러나 /etc/rsyslog.conf
fusionr를 실행하면 rsyslog가 활성화되어 실행 중이더라도 아무것도 반환되지 않습니다.
좀 더 구체적인 예를 들면, 여기 출력 중 일부는 서비스가 사용하는 구성 파일에 대해 전혀 알려주지 않습니다.
[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
아니요. 해당 파일에 대한 "소유권 정보"가 존재하지 않습니다. 대신, "서비스"는 액세스 권한이 있는 모든 파일을 열 수 있는 실행 파일일 뿐입니다. 따라서 구성을 로드하기 위해 읽을 파일을 서비스에 알려주는 것도 본질적으로 없습니다.
당신이 할 수 있는 일은 문서를 읽는 것 뿐이다.