override.conf 파일이 실제 서비스 파일 conf를 변경합니까?

override.conf 파일이 실제 서비스 파일 conf를 변경합니까?

override.conf파일을 만들어 디렉토리 systemd-journal-catalog-update.service에 넣었습니다 . systemd-journal-catalog-update.service.d/그 목적 systemd-tmpfiles-setup.service은 에서 제거하는 것입니다.systemd-journal-catalog-update.service file.

이제 파일에 다음이 포함됩니다.

[Unit]
After=local-fs.target systemd-tmpfiles-setup.service

override.conf파일에는 다음이 있습니다.

[Unit]
After=
After=local-fs.target

그러나 systemd-journal-catalog-update.service파일이 변경되지 않는 것 같습니다. 파일 작동 방식을 오해하고 있습니까 override.conf? 원본 서비스 파일을 수동으로 수정할 수 있다는 것을 알고 있지만 프로젝트 상황에 따라 이를 옵션으로 제한하고 있습니다. 여러분이 줄 수 있는 어떤 도움/조언도 대단히 감사하겠습니다.

답변1

원하는 것(드롭인 파일을 통해 장치에서 종속성 제거)은 불가능합니다.systemd.unit매뉴얼 페이지:

종속성(After= 등)은 빈 목록으로 재설정할 수 없으므로 종속성은 드롭인에서만 추가할 수 있습니다. 종속성을 제거하려면 전체 단위를 재정의해야 합니다.

맨 페이지의 예제 2를 따르면 전체 유닛 파일을 재정의할 수 있습니다.

유닛 파일의 공급업체 설정을 재정의하는 방법에는 두 가지가 있습니다. 즉, /usr/lib/systemd/system에서 /etc/systemd/system으로 유닛 파일을 복사하고 선택한 설정을 수정하는 것입니다. [...] 첫 번째 방법의 장점은 전체 단위를 쉽게 무시하고 공급업체 단위가 더 이상 구문 분석되지 않는다는 것입니다. 공급업체의 유닛 파일 개선 사항이 업데이트 시 자동으로 통합되지 않는다는 단점이 있습니다.

귀하의 경우에는 (루트로)

  • cp /usr/lib/systemd/system/systemd-journal-catalog-update.service /etc/systemd/system
  • systemctl daemon-reload
  • systemctl restart systemd-journal-catalog-update

그 후에는 systemctl status다음의 서비스 파일을 가리킵니다 /etc.

# systemctl status systemd-journal-catalog-update
● systemd-journal-catalog-update.service - Rebuild Journal Catalog
     Loaded: loaded (/etc/systemd/system/systemd-journal-catalog-update.service; static)
     Active: active (exited) since Sat 2021-05-22 16:27:07 CEST; 3 weeks 2 days ago
[...]

앞서 언급한 내용은 systemctl cat다음 파일에도 표시되지 않습니다 /etc/.

# systemctl cat systemd-journal-catalog-update
# /etc/systemd/system/systemd-journal-catalog-update.service
#  SPDX-License-Identifier: LGPL-2.1-or-later
#
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=Rebuild Journal Catalog
[...]

/etc이제 원하는 대로 파일을 편집하고 , systemctl daemon-reload다시 실행하고, systemctl restart systemd-journal-catalog-update사용자 정의 단위 파일과 해당 설정으로 서비스를 실행할 수 있습니다.

매뉴얼 페이지에 언급된 다음 사항에 유의하십시오.

공급업체의 유닛 파일 개선 사항이 업데이트 시 자동으로 통합되지 않는다는 단점이 있습니다.

이제 systemd는 배포판의 systemd 패키지에 있는 것과 완전히 다른 단위 파일을 읽으므로 해당 파일의 업데이트를 /usr/lib자신의 복사본에 수동으로 적용해야 합니다. 패키지 관리자가 추적하는 구성 파일이 로컬 관리자와 패키지 모두에 의해 수정된 경우 일반적으로 생성되는 .rpmnew(RPM 기반 배포판에서) 또는 (팩맨 기반 배포판에서) 파일은 이 경우 생성되지 않습니다..pacnew

관련 정보