O ile wiem, systemd nie poradzi sobie z tym szczególnie dobrze. Jak rozumiem, chcesz zastąpić zachowanie sshd.service
, prawda?
Na szczęście systemd jest przeznaczony do tego rodzaju rzeczy. Wystarczy wprowadzić definicję usługi /etc/systemd/system/ssh.service
, wykonać, systemctl daemon-reload
aby ponownie załadować pliki jednostek, a systemd automatycznie użyje tej konfiguracji zamiast systemu ssh.service
.
Też chcesz mieć systemctl enable mysshd.service
pracę? Nie ma problemu. W [Install]
sekcji pliku jednostki dodaj wiersz z napisem Alias=mysshd.service
. Następnie wykonaj, systemctl reenable ssh.service
aby systemd naprawił dowiązania symboliczne jednostki, a ty jesteś złoty.
Teraz nie podałeś szczegółowych informacji na temat tego, co mysshd.service
należy zrobić. Jeśli to zupełnie inne niż normalne ssh.service
, świetnie! Użyj powyższej metody. Jeśli jednak chcesz tylko zmienić jedną drobną rzecz, używasz niewłaściwego podejścia. systemd umożliwia tworzenie „fragmentów” plików jednostkowych, które będą stosowane na wierzchu zwykłych plików jednostkowych. Pozwala to dodawać lub zastępować poszczególne dyrektywy, jednocześnie pozwalając reszcie pliku jednostki otrzymywać aktualizacje od menedżera pakietów. Aby to zrobić, po prostu utwórz /etc/systemd/system/ssh.d/my-custom-config.conf
(możesz zmienić my-custom-config.conf
na dowolne, możesz też mieć wiele plików zastępujących). W tym pliku umieść wszystkie dyrektywy, które chcesz zmienić lub dodać do zwykłych ssh.service
. Możesz nawet dodawać Alias=
dyrektywy, więc to systemctl start mysshd.service
działa! Pamiętaj tylko, aby wykonaćsystemctl daemon-reload
Po zakończeniu (i, jeśli jest używana Alias=
, systemctl reenable ssh.service
).
Nawiasem mówiąc , nigdy nie zmieniaj plików jednostkowych w systemie /usr/lib/systemd
. Zawsze! Standard Hierarchia systemu plików wymaga, aby /usr
traktować go jako tylko do odczytu. W praktyce oznacza to, że menedżer pakietów obsługuje /usr
(z wyjątkiem /usr/local
) i nie dotykasz tego, co obsługuje menedżer pakietów - zwłaszcza, że cokolwiek zmienisz, prawdopodobnie zostanie ostatecznie nadpisane. Zamiast tego umieść swoje rzeczy gdzieś jak /etc
.