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

Перезапустить все службы в линуксе без перезагрузки ядра?

У меня есть удаленная машина с зашифрованными дисками, поэтому каждая полная перезагрузка требует физического доступа к машине. На машине просто возникли проблемы с нехваткой дискового пространства, поэтому часть запущенных служб аварийно завершила работу или вошла в странные состояния неисправности. Я бы хотел «мягкую перезагрузку» машины без перезагрузки всего ядра, чтобы избежать перемонтирования дисков и необходимости вводить кодовую фразу.

ОС использует systemd для управления службами и ядра 4.9.

Я использовал с переменным успехом (эти ярлыки "доступно только для совместимости")

init 1; init 3

Что в настоящее время обычно означает следующее:

systemctl isolate rescue; systemctl isolate default

Что убивает все, кроме сервисов, которые считаются необходимыми или являются частью указанных целей - systemd по-прежнему предоставляет цели, которые примерно имитируют часть того, к чему привыкли уровни запуска.

systemctl изолировать БЛОК

Запустите модуль, указанный в командной строке, и его зависимости и остановите все остальные, если они не имеют IgnoreOnIsolate = yes (см. Systemd.unit (5)). Если указано имя объекта без расширения, предполагается расширение «.target». - человек 1 systemctl

Причина, по которой я не очень люблю это рекомендовать, - это как раз убойная часть:

Это похоже на изменение уровня запуска в традиционной системе инициализации. Команда изолировать немедленно остановит процессы, которые не включены в новом модуле, возможно, включая графическую среду или терминал, который вы используете в настоящее время. - человек 1 systemctl

Я попробовал это на Ubuntu и решил, что предпочитаю, если ssh.service и network.target были частью моих rescue.target. Потому что безопаснее, если только сервисы, кроме ssh и его сетевых зависимостей были перезапущены.

Потому что, если что-то пойдет не так при активации rescue.target, в противном случае приведенная выше команда может убить мой сеанс и не вернуть все обратно.