Soweit ich weiß, wird systemd nicht besonders gut damit umgehen. Wie ich es verstehe, möchten Sie das Verhalten von überschreiben sshd.service, nicht wahr?
Zum Glück ist systemd für diese Art von Dingen ausgelegt. Geben Sie einfach Ihre Service-Definition ein /etc/systemd/system/ssh.service, führen Sie systemctl daemon-reloadden Befehl aus , um die Unit-Dateien neu zu laden, und systemd verwendet diese Konfiguration automatisch anstelle des Systems ssh.service.
Willst du auch systemctl enable mysshd.servicearbeiten? Kein Problem. Fügen Sie in dem [Install]Abschnitt Ihrer Unit-Datei eine Zeile hinzu, die besagt Alias=mysshd.service. systemctl reenable ssh.serviceFühren Sie dann den Befehl aus , damit das System die Einheiten-Symlinks repariert, und Sie sind goldrichtig.
Nun, Sie haben nicht genau angegeben, was mysshd.servicezu tun ist. Wenn es ganz anders ist als normal ssh.service, großartig! Verwenden Sie die obige Methode. Wenn Sie jedoch nur eine Kleinigkeit ändern möchten, verwenden Sie den falschen Ansatz. Mit systemd können Sie "Snippets" von Unit-Dateien erstellen, die über die normalen Unit-Dateien gelegt werden. Auf diese Weise können Sie einzelne Anweisungen hinzufügen oder überschreiben, während der Rest der Einheitendatei Aktualisierungen vom Paketmanager erhält. Dazu erstellen /etc/systemd/system/ssh.d/my-custom-config.confSie einfach (Sie können ändern my-custom-config.conf, was Sie möchten, und Sie können auch mehrere Überschreibungsdateien haben). Platzieren Sie in dieser Datei alle Anweisungen, die Sie ändern oder zu den üblichen hinzufügen möchten ssh.service. Sie können sogar Alias=Direktiven hinzufügen , damit das systemctl start mysshd.servicefunktioniert! Denken Sie daran, auszuführensystemctl daemon-reloadnachdem Sie fertig sind (und, wenn Sie verwendet haben Alias=, systemctl reenable ssh.service).
Als Nebenwirkung , nie, nie systemd Unit - Dateien ändern in /usr/lib/systemd. Je! Der Dateisystem-Hierarchie-Standard erfordert, dass /usrer als schreibgeschützt behandelt wird. In der Praxis bedeutet dies, dass der Paketmanager /usr(mit Ausnahme von /usr/local) behandelt und Sie nicht berühren, was der Paketmanager behandelt - insbesondere, weil alles, was Sie ändern, wahrscheinlich irgendwann überschrieben wird. Legen Sie stattdessen Ihre Sachen in irgendwo wie /etc.