내가 아는 한 systemd는 이것을 특히 잘 처리하지 못합니다. 내가 이해했듯이의 동작을 무시하고 싶 sshd.service
습니까?
운 좋게도 systemd는 이런 종류의 것을 위해 설계되었습니다. 단순히 서비스 정의를 입력 /etc/systemd/system/ssh.service
하고 실행 systemctl daemon-reload
하여 유닛 파일을 다시로드하면 systemd는 시스템 대신 해당 구성을 자동으로 사용합니다 ssh.service
.
일을하고 싶 systemctl enable mysshd.service
습니까? 문제 없어요. 에서 [Install]
당신의 유닛 파일의 섹션라는 한 줄을 추가합니다 Alias=mysshd.service
. 그런 다음 시스템이 systemctl reenable ssh.service
심볼릭 링크를 수정 하도록 실행 하면 황금색입니다.
이제 mysshd.service
해야 할 일 에 대한 세부 정보를 제공하지 않았습니다 . 정상 ssh.service
과 완전히 다른 경우 훌륭합니다! 위의 방법을 사용하십시오. 그러나 하나의 작은 것을 변경하려면 잘못된 접근법을 사용하고 있습니다. systemd를 사용하면 일반 단위 파일 위에 적용될 단위 파일의 "스 니펫"을 만들 수 있습니다. 이를 통해 개별 지시문을 추가하거나 무시하고 나머지 단위 파일이 패키지 관리자로부터 업데이트를 수신 할 수 있습니다. 이렇게하려면 간단히 작성하십시오 /etc/systemd/system/ssh.d/my-custom-config.conf
( my-custom-config.conf
원하는대로 변경 하고 대체 파일을 여러 개 가질 수도 있음). 해당 파일에서 변경하거나 평소에 추가하려는 지시문을 배치하십시오 ssh.service
. Alias=
지시문을 추가해도 systemctl start mysshd.service
작동합니다! 그냥 실행하는 것을 기억하십시오systemctl daemon-reload
작업을 마친 후 (및를 사용한 Alias=
경우 systemctl reenable ssh.service
).
따로, 에서 시스템 단위 파일을 절대로 변경 하지 마십시오 /usr/lib/systemd
. 이제까지! 파일 시스템 계층 표준 에서는 이 /usr
를 읽기 전용으로 처리 해야 합니다 . 실제로 이것은 패키지 관리자가 /usr
(을 제외하고 /usr/local
) 처리하고 패키지 관리자가 처리하는 내용을 건드리지 않는다는 것을 의미합니다. 특히 변경 한 내용이 결국 덮어 쓰여지기 때문입니다. 대신에 물건을 같은 곳에 넣으십시오 /etc
.