Per quanto ne so, systemd non se ne occuperà particolarmente bene. A quanto ho capito, vuoi ignorare il comportamento di sshd.service
, giusto?
Fortunatamente per te, systemd è progettato per questo tipo di cose. È sufficiente inserire la definizione del servizio /etc/systemd/system/ssh.service
, eseguire systemctl daemon-reload
per ricaricare i file di unità e systemd utilizzerà automaticamente quella configurazione anziché il sistema ssh.service
.
Vuoi avere anche systemctl enable mysshd.service
lavoro? Nessun problema. Nella [Install]
sezione del file dell'unità, aggiungi una riga che dice Alias=mysshd.service
. Quindi esegui systemctl reenable ssh.service
per fare in modo che systemd ripari i collegamenti simbolici dell'unità e sei d'oro.
Ora, non hai fornito dettagli su cosa mysshd.service
dovrebbe fare. Se è completamente diverso dal normale ssh.service
, fantastico! Usa il metodo sopra. Tuttavia, se vuoi solo cambiare una piccola cosa, stai usando l'approccio sbagliato. systemd consente di creare "frammenti" di file di unità che verranno applicati in cima ai normali file di unità. Ciò consente di aggiungere o sostituire singole direttive consentendo al resto del file di unità di ricevere aggiornamenti dal gestore pacchetti. Per fare ciò, è sufficiente creare /etc/systemd/system/ssh.d/my-custom-config.conf
(è possibile modificare my-custom-config.conf
per essere quello che si desidera e si possono anche avere più file di sostituzione). In quel file, inserisci le direttive che vuoi modificare o aggiungi al solito ssh.service
. Puoi persino aggiungere Alias=
direttive, in modo che systemctl start mysshd.service
funzioni! Ricorda solo di eseguiresystemctl daemon-reload
dopo aver finito (e, se hai usato Alias=
, systemctl reenable ssh.service
).
A parte questo, mai e poi mai cambiare i file di unità di sistema in /usr/lib/systemd
. Mai! Lo standard di gerarchia dei file system richiede che /usr
venga considerato di sola lettura. In pratica, ciò significa che il gestore dei pacchetti gestisce /usr
(tranne che per /usr/local
) e non si tocca ciò che gestisce il gestore dei pacchetti, soprattutto perché qualsiasi cosa si cambi verrà probabilmente sovrascritta. Invece, metti le tue cose in un posto come /etc
.