시스템 단위 파일 설정을 재정의하는 방법은 무엇입니까?

시스템 단위 파일 설정을 재정의하는 방법은 무엇입니까?

Arch Linux 서버에 MySQL을 설치했습니다. 데이터 디렉터리를 내 RAID 볼륨이 마운트된 /home 아래의 위치로 이동했습니다. systemd 장치에 해당 설정이 포함되어 있기 때문에 기본적으로 mysqld는 이 구성에서 시작되지 않는다는 것을 알았습니다 ProtectHome=true.

재정의하고 싶습니다오직이 설정. ExecStart패키지가 업그레이드될 때 변경될 경우를 대비하여 이러한 명령이나 유사한 명령을 다시 지정하고 싶지 않습니다 .

/etc/systemd/system호출 사이트에서 간단한 파일 생성을 시도 mysqld.service하고 다음 줄을 추가했습니다.

[Service]
ProtectHome=false

서비스가 /etc에 있는 것처럼 보이기 때문에 작동하지 않습니다.바꾸다, 시스템 서비스에는 적용되지 않습니다.

/usr/lib/systemd/system의 파일을 직접 수정하지 않고 이런 방식으로 systemd 단위 파일의 설정을 재정의하는 방법이 있습니까? (이것은 현재 임시 수정 사항이지만 패키지가 업데이트되면 결국 복원될 것입니다.)

답변1

systemctl edit만들 것입니다끼워 넣다대부분의 설정을 재정의할 수 있는 파일이지만 이러한 파일에는 언급할 만한 몇 가지 세부 정보가 있습니다.

삽입 파일의 경우 예를 들어 목록으로 확인되는(종속성이 아닌) 설정 AssertPathExists=( ExecStart=예: 서비스 단위)에서 항목을 제거하려면 먼저 목록을 지워야 합니다. 그런 다음 재설정 - 삭제된 항목을 제외한 모든 항목을 제외하고 추가합니다.

#/etc/systemd/system/httpd.service.d/local.conf
[Unit]
AssertPathExists=
AssertPathExists=/srv/www

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

전체 셀을 포함하려면 아직 복사하지 않은 경우 systemctl edit --full사본을 만들어 편집할 수 있습니다.를 사용하세요./etc

당신은 또한 볼 수 있습니다시스템 제거 재정의

답변2

다음을 사용하여 시스템 단위 파일을 덮어쓸 수 있습니다.

systemctl edit mysqld.service

재정의 파일의 모든 문이 우선적으로 적용됩니다.

관련 정보