Вимкнути всі сервіси, крім 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.