Bagaimana saya bisa menonaktifkan semua layanan kecuali ssh pada distribusi linux modern (berbasis systemd)?
Saya perlu menerapkan mode pemeliharaan .
Semua layanan ini harus dihentikan:
- postgres
- postfix
- apache
- cangkir
- cron
- tempat perlindungan merpati
Tetapi ssh tidak boleh dimatikan, karena ini digunakan untuk melakukan tugas selama mode pemeliharaan.
Tentu saja saya bisa menulis skrip shell yang melompati daftar layanan yang ingin saya nonaktifkan. Tetapi ini terasa seperti saya menemukan kembali sesuatu yang sudah ada, tetapi saya tidak tahu sampai sekarang.
linux
service
systemd
maintenance
guettli
sumber
sumber
Jawaban:
Ini terdengar sangat mirip runlevel , diganti dengan target di Systemd. Jadi, alih-alih menulis skrip yang memulai dan menghentikan daftar layanan, Anda bisa membuat
maintenance.target
yang hanya berisi layanan yang diperlukan saja, seperti SSH. Tentu saja, SSH tidak cukup berguna tanpa jaringan, jadi dalam contoh ini sederhanaemergency-net.target
dimodifikasi untuk memasukkan SSH.Kemudian, Anda bisa masuk ke mode pemeliharaan menggunakan
dan kembali
sumber
Pertama-tama daftarkan layanan Anda dan cari nama-sistemnya yang sesuai.
Kemudian buat daftar dan hentikan setiap anggota daftar untuk memasuki pemeliharaan, mulai setiap anggota setelah pemeliharaan.
sumber
systemctl isolate
?