디스크에서 Systemctl httpd.service 파일이 변경되었습니다.

디스크에서 Systemctl httpd.service 파일이 변경되었습니다.

systemctl을 시작할 때 httpd오류가 발생합니다.

Warning: The unit file, source configuration file or drop-ins of httpd.service changed on disk. Run 'systemctl daemon-reload' to reload units.

실행했는데 systemctl daemon-reload오류가 지속됩니다.

출력은 다음과 같습니다 systemctl status httpd.

Warning: The unit file, source configuration file or drop-ins of httpd.service changed on disk. Run 'systemctl daemon-reload' to reload units.
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           └─php-fpm.conf
   Active: active (running) since Tue 2018-05-29 08:08:09 CDT; 4min 6s ago
     Docs: man:httpd.service(8)
 Main PID: 19471 (httpd)
   Status: "Running, listening on: port 80"
    Tasks: 213 (limit: 4500)
   Memory: 18.8M
   CGroup: /system.slice/httpd.service
           ├─19471 /usr/sbin/httpd -DFOREGROUND
           ├─19472 /usr/sbin/httpd -DFOREGROUND
           ├─19473 /usr/sbin/httpd -DFOREGROUND
           ├─19474 /usr/sbin/httpd -DFOREGROUND
           └─19475 /usr/sbin/httpd -DFOREGROUND

문제를 추가로 진단하려면 어떻게 해야 합니까?

Fedora 28, systemd 238 및 apache 2.4.34를 실행합니다.

답변1

나는 같은 문제에 직면했다. 파일에 비해 내 서버의 날짜가 꺼져 있습니다 overides.conf. 그래서 방금 하나를 만들었습니다 touch overides.conf. 그 위치는 입니다 /etc/systemd/system/httpd.service.d.

systemctl daemon-reload날짜가 틀리면 당연히 예상대로 되지 않겠죠?

답변2

비슷한 문제가 발생했습니다. 라는 이름의 별칭을 만들 수 있도록 foo-1.2.3활성화된 이름의 단위가 있지만 버전 번호는 없습니다.systemctl enable foo-1.2.3foo

이 작업을 수행하면 systemctl edit foo라는 오버레이 파일이 생성되고 /etc/systemd/system/foo.service.d/override.confdaemon-reload를 실행하더라도 "Hung on disk. Run 'systemctl daemon-reload' to reload device"라는 메시지가 계속 표시됩니다.

즉, 별칭을 사용하지 않고 디렉토리 이름을 바꾸었고 /etc/systemd/system/foo-1.2.3.service.d오류 메시지가 사라졌습니다. 거기에는 전혀 단서가 없습니다 journalctl. 나는 이것이 실수라고 생각한다. systemd가 edit명령에 별칭을 사용하는 것을 좋아하지 않으면 조기에 실패해야 합니다. 또는 별칭을 사용하는 대신 오버레이 디렉터리의 이름을 일관되게 지정해야 합니다.

즉, systemd는 여전히 파일 덮어쓰기를 지원하지 않습니다! 오버레이 파일에 환경 변수를 설정했지만 프로세스에서 이를 얻지 못합니다. 아직 디버깅 할 일이 남았는데...

관련 정보