Насколько я знаю, 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
команду systemd, чтобы исправить символьные ссылки, и все будет отлично.
Теперь вы не дали подробностей о том, что 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
.