Hasta donde yo sé, systemd no se ocupará de esto particularmente bien. Según tengo entendido, desea anular el comportamiento de sshd.service
, ¿verdad?
Afortunadamente para ti, systemd está diseñado para este tipo de cosas. Simplemente ingrese su definición de servicio /etc/systemd/system/ssh.service
, ejecútelo systemctl daemon-reload
para recargar los archivos de la unidad, y systemd usará automáticamente esa configuración en lugar del sistema ssh.service
.
¿Quieres tener systemctl enable mysshd.service
trabajo también? No hay problema. En la [Install]
sección del archivo de su unidad, agregue una línea que diga Alias=mysshd.service
. Luego ejecute systemctl reenable ssh.service
para que systemd arregle los enlaces simbólicos de la unidad, y estará dorado.
Ahora, no ha dado detalles sobre lo que mysshd.service
se supone que debe hacer. Si es completamente diferente de lo normal ssh.service
, ¡genial! Usa el método anterior. Sin embargo, si solo desea cambiar una pequeña cosa, está utilizando el enfoque incorrecto. systemd le permite crear "fragmentos" de archivos de la unidad que se aplicarán sobre los archivos de la unidad normal. Esto le permite agregar o anular directivas individuales mientras permite que el resto del archivo de la unidad reciba actualizaciones del administrador de paquetes. Para hacer esto, simplemente cree /etc/systemd/system/ssh.d/my-custom-config.conf
(puede cambiar my-custom-config.conf
para que sea lo que quiera, y también puede tener múltiples archivos de anulación). En ese archivo, coloque las directivas que desee cambiar o agregar a las habituales ssh.service
. Incluso puede agregar Alias=
directivas, ¡eso systemctl start mysshd.service
funciona! Solo recuerda ejecutarsystemctl daemon-reload
después de que haya terminado (y, si se ha utilizado Alias=
, systemctl reenable ssh.service
).
Como un aparte, nunca, nunca cambie los archivos de la unidad systemd /usr/lib/systemd
. ¡Nunca! El estándar de jerarquía del sistema de archivos requiere que /usr
se trate como de solo lectura. En la práctica, esto significa que el administrador de paquetes maneja /usr
(excepto /usr/local
), y no toca lo que maneja el administrador de paquetes, especialmente porque lo que cambie probablemente se sobrescribirá. En cambio, pon tus cosas en algún lugar como /etc
.