Назад | Перейти на главную страницу

Как заставить systemd убивать sshd последним во время перезагрузки?

На машине с системой systemd (например, Debian) всякий раз, когда я выполняю перезагрузку, в первую очередь убиваются sshd. Этого не было в те дни, когда sysvinit не так уж и хороши, но и не так уж и плохи, когда я все еще мог наблюдать и иногда исправлять проблемы, возникающие во время перезагрузки через SSH.

Я был бы в порядке с sshd, чтобы не получить TERM signal вообще или в идеале как один из самых последних процессов, даже после того, как сеть была отключена. Есть ли способ добиться этого с помощью systemd?

Мне также было бы интересно узнать, как сделать sshd начать работу в качестве одной из первых услуг, но это не так важно.

Что вы собираетесь наблюдать и чего добиваться за 2 секунды? Это время, когда я наблюдаю, как завершение работы происходит полностью: от завершения служб, интерфейсов ifdown, размонтирования файловых систем и TERM для всех процессов. Я тестировал Debian Stretch в Google Cloud, построенный на 20190326.

Остановка сервисов убирает их срезы, и это делается параллельно. Их дерево процессов, включая ваши сеансы, быстро завершается. Мне неизвестна конфигурация, которая выводит что-нибудь полезное до того, как ваш сеанс завершится.

Вы можете регистрировать события через journald с помощью Storage=persistent, или возможно отправлено в удаленную систему с помощью systemd-journal-remote. Журналы предыдущей загрузки можно получить с помощью journalctl -b -1. Либо вернитесь в перезагруженную систему с помощью ssh или консоли, либо посмотрите удаленные журналы.