Soru Ssh hariç tüm hizmetleri devre dışı bırak


Modern (systemd tabanlı) linux dağıtımlarında ssh dışındaki tüm hizmetleri nasıl devre dışı bırakabilirim?

Uygulamak zorundayım Bakım Modu.

Tüm bu servislerin aşağıda olması gerekiyor:

  • postgres
  • postfix
  • apache
  • bardaklar
  • cron
  • güvercinlik

Ancak ssh kapatılmamalıdır, çünkü bu bakım modunda görev yapmak için kullanılır.

Tabii ki, devre dışı bırakmak istediğim bir hizmet listesi üzerinde döngü yapan bir kabuk betiği yazabilirim. Ama bu zaten var olan bir şeyi yeniden keşfetmemi sağlıyor, ama şu ana kadar bilmediğim bir şey.


30
2017-11-25 12:51


Menşei


Ne tür görevler? Niçin buna ihtiyacın var? - ewwhite
@ user430214 Soruyu güncelledim. Ekledim: Tabii ki devre dışı bırakmak istediğim bir hizmet listesi üzerinde döngülü bir kabuk betiği yazabilirim. Ama bu zaten var olan bir şeyi yeniden keşfetmemi sağlıyor, ama şu ana kadar bilmediğim bir şey. - guettli


Cevaplar:


Bu çok benziyor çalışma_seviyeleriile değiştirildi hedefler Systemd'de. Yani, bir hizmet listesini başlatan ve durduran bir komut dosyası yazmak yerine, yeni bir kod oluşturabilirsiniz. maintenance.target Sadece SSH gibi gerekli olan hizmetleri içerir. Tabii ki, SSH ağ olmadan çok kullanışlı değil, bu yüzden bu örnekte basit emergency-net.target SSH'yi içerecek şekilde değiştirilmiştir.

[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

Ardından, bakım modunuzu kullanarak girebilirsiniz.

# systemctl isolate maintenance.target

ve geri

# systemctl isolate multi-user.target

53
2017-11-25 14:35



Bu cevap için çok teşekkür ederim. Kirli bir kabuk senaryosu yazmanın dışında güzel bir cevabın olmadığını düşünürseniz bile, sormanın yararlı olduğunu gösterir. Emergency-net.target basit ve zarif bir çözümdür - harika :-) - guettli
Ayrıca, tüm bağımlılıkları da göz önünde bulundurduğundan ve yeni bir hizmet yüklediğinizde betiğinizi güncellemeniz gerekmediğinden kesinlikle emin olun. - Esa Jokinen


İlk önce servislerinizi listeleyin ve bunlara karşılık gelen sistemd isimlerini arayın.

Daha sonra bir liste oluşturun ve her liste üyesini bakım için bırakın, her üyeyi bakımdan sonra başlatın.


4
2017-11-25 14:02



Neden sadece kullanma systemctl isolate? - Chris Down