.service를 수정하고 지속적으로 유지하려면 어떻게 해야 하나요? [복사]

.service를 수정하고 지속적으로 유지하려면 어떻게 해야 하나요? [복사]

transmission-daemon서비스로 실행하는 데비안 확장 기능이 있습니다 .

토렌트 파일을 설치에 저장합니다 /mnt/external-disk. 디스크에 파일 시스템이 있고 ext4이를 uuid로 매핑합니다./etc/fstab

문제는 다음과 같습니다

부팅 시 서비스가 transmission-daemon시작되면 외부 파일 시스템이 마운트되어 있는지 확인하지 않아 해당 파일을 찾을 수 없으며 데이터 오류가 발생하고 토렌트 파일이 시드되지 않지만 서비스가 시작됩니다.

systemd이 문제를 해결하기 위해 문서를 확인 하고 누락된 내용을 찾았습니다.

파일 섹션 의 행은 RequiresMountsFor=아래 트리에 있습니다. 마운트 지점에 대한 경로가 포함된 해당 행을 추가한 후 문제가 사라지고 서비스가 제대로 작동했습니다. 컴퓨터를 다시 시작하면 서비스가 제대로 작동하고 파일이 시드됩니다.[Unit]transmission-daemon.service/lib/systemd//mnt/external-disk

apt-get dist-upgrade이것은 패키지가 관련된 위치를 찾을 때까지 작동했고 그 후에는 중지되었습니다. transmission-daemon그래서 확인해 transmission-daemon.service보니 제가 변경한 내용이 누락되어 있었습니다.

RequiresMountsFor=올바른 경로로 줄을 다시 추가했더니 문제가 다시 해결되었습니다 .

내 질문은: 이 수정 사항을 어떻게 지속되게 만들 수 있습니까?

답변1

이 단위를 의 단위로 재정의해야 합니다 /etc. 가장 쉬운 방법은 다음을 사용하는 것입니다 systemctl edit.

sudo systemctl edit transmission-daemon

편집기가 열리고 오버레이 클립을 만들 수 있습니다.

코드 조각을 재정의하면 패키지 단위에 대한 향후 변경 사항이 고려됩니다( /lib). 참조는 패키지 단위가 되며 재정의가 맨 위에 적용됩니다. 귀하의 경우 해당 섹션과 해당 줄만 포함하는 .conf파일 만 사용해야 합니다 . 이 작업은 적절한 위치에 파일을 생성하여 수행됩니다 ./etc/systemd/system/transmission-daemon.service.d/RequiresMountsForsystemctl editoverride.conf

또는 /lib/systemd/system/transmission-daemon.service전체 셀을 복사하여 /etc/systemd/system편집할 수 있습니다. 다시 말하지만, systemctl edit이 문제를 해결할 수 있는 옵션이 있습니다 --full.

"예 2. 공급업체 설정 재정의"를 찾으세요.systemd.unit문서더 알아보기.

답변2

/etc/systemd이를 (또는 적절한 하위 디렉토리 ) 에 복사하고 /etc/systemd복사본을 수정하십시오.

/lib/systemd패키징용 유닛 파일입니다. systemd(또는 이를 제공하는 패키지)가 업그레이드되면 덮어쓰게 됩니다.

/etc/systemd자신만의 맞춤형 유닛 파일로 작업할 수 있습니다. 여기에 배치한 유닛 파일은 패키지에서 제공하는 파일을 덮어쓰며 업그레이드 시 교체되지 않습니다.

관련 정보