Вимкнути всі сервіси, крім ssh


31

Як я можу відключити всі сервіси, крім ssh, на сучасних (заснованих на системі) Linux дистрибутивах?

Мені потрібно запровадити режим обслуговування .

Усі ці сервіси повинні бути знищені:

  • постгреси
  • постфікс
  • апаш
  • чашки
  • крон
  • голубець

Але ssh не можна вимикати, оскільки це звикає виконувати завдання в режимі обслуговування.

Звичайно, я можу написати скрипт оболонки, який перетинає список послуг, які я хотів би відключити. Але це відчуває те, що я вигадую щось, що вже існує, але чого я до цього часу не знаю.


1
Який тип завдань? Навіщо вам це потрібно?
— ewwhite

@ user430214 Я оновив питання. Я додав: Звичайно, я можу написати скрипт оболонки, який перетинає список послуг, які я хотів би відключити. Але це відчуває те, що я вигадую щось, що вже існує, але чого я до цього часу не знаю.
— guettli

Відповіді:


55

Це дуже схоже на рівні запуску , замінені цілями в Systemd. Отже, замість того, щоб писати сценарій, який запускає та зупиняє список послуг, ви можете створити новий, maintenance.targetщо містить лише необхідні служби, наприклад, SSH. Звичайно, SSH не дуже корисний без мереж, тому в цьому прикладі emergency-net.targetмодифікується простий , щоб включити SSH.

[Unit]
Description=Maintenance Mode with Networking and SSH
Requires=maintenance.target systemd-networkd.service sshd.service
After=maintenance.target systemd-networkd.service sshd.service
AllowIsolate=yes

Потім ви можете перейти в режим обслуговування за допомогою

# systemctl isolate maintenance.target

і назад

# systemctl isolate multi-user.target

1
Дуже дякую за цю відповідь. Це показує мені, що запитувати корисно, навіть якщо ви думаєте, що немає приємної відповіді, крім написання сценарію брудної оболонки.
— Emergnet.target

Це, безумовно, так як він також бере на себе всі залежності, і вам не потрібно оновлювати свій сценарій щоразу, коли ви встановлюєте нову послугу.
— Еса Йокінен

3

Спочатку перелічіть свої служби та знайдіть їх відповідні системні назви.

Потім складіть список і зупиніть кожного учасника списку, щоб він входив у обслуговування, запускайте кожного члена після обслуговування.


5
Чому б просто не використовувати systemctl isolate?
— Кріс Даун
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.