apa yang kamu maksud dengan diaktifkan? Maksud Anda layanan yang sedang berjalan?
Kejadian
7
@ Jen mengaktifkan layanan sangat berbeda dari memulainya. Lihat man systemctl.
Jos
Menarik. Jawaban dengan peringkat terendah adalah jawaban yang paling "benar", meskipun jelas bukan jawaban terbaik. Pertanyaan yang sangat bagus ini (dan jawabannya) adalah contoh yang menarik tentang bagaimana systemd melanggar prinsip-prinsip desain Unix & Co. @FelipeAlvarez yang sudah lama ada dan mengeluh bahwa jawaban yang paling diterima mengasumsikan systemd mengikuti filosofi desain unix, tetapi systemd / systemctl dapat melakukan apa yang dia inginkan (sebagian besar pengguna yang berpengalaman hanya akan menganggap bahwa mengasapi sepenuhnya). Saya mulai melihat dengan lebih jelas mengapa Linus Torvalds begitu kritis terhadap systemd.
BISI
Jawaban:
412
systemctl list-unit-files | grep enabledakan mendaftar semua yang diaktifkan .
Jika Anda ingin yang sedang berjalan , Anda perlu systemctl | grep running.
Gunakan yang Anda cari. Diaktifkan, bukan berarti sedang berjalan. Dan berlari bukan berarti itu diaktifkan. Mereka adalah dua hal yang berbeda.
Diaktifkan berarti sistem akan menjalankan layanan pada boot berikutnya. Jadi, jika Anda mengaktifkan layanan, Anda masih perlu memulainya secara manual, atau reboot dan itu akan mulai.
Menjalankan berarti itu benar-benar berjalan sekarang, tetapi jika tidak diaktifkan, itu tidak akan mulai lagi ketika Anda reboot.
menjengkelkan harus menggunakan alat eksternal (grep) untuk menunjukkan informasi penting ini. Tapi terima kasih telah menunjukkan jalannya kepada kami :)
Felipe Alvarez
34
@FelipeAlvarez Benar. Tapi begitulah cara kerja Linux. Banyak binari kecil yang bekerja dengan baik satu sama lain. systemctl melakukan apa yang diminta, daftar layanan. Tidak ada perintah penyaringan bawaan untuk systemctl karena grep sudah ada dan dapat melakukannya dengan baik dengan output program apa pun.
Dorian
3
Saya setuju dan memang seharusnya begitu. Tetapi, systemd sudah mencoba melakukan banyak hal sehingga saya bertanya-tanya mengapa ia tidak dapat mendaftar layanan yang diaktifkan?
Felipe Alvarez
5
systemctl | grep runningjangan daftar apa pun untuk saya! Bahkan jika sesuatu berjalan hanya terdaftar sebagai statusnya seperti:enabled, disabled, masked, static
Cirelli94
27
Simpler:systemctl list-unit-files --state=running
Will
93
man systemctl menyatakan:
--state=
Argumen harus daftar dipisahkan koma unit LOAD, SUBatau ACTIVEnegara. Saat mendaftarkan unit, hanya tampilkan yang ada di negara bagian yang ditentukan. Gunakan --state=faileduntuk menampilkan hanya unit yang gagal.
Penjelasan:
LOAD: Mencerminkan apakah definisi unit dimuat dengan benar. ACTIVE: Status aktivasi unit tingkat tinggi, yaitu generalisasi SUB. SUB: Status aktivasi unit tingkat rendah, nilainya tergantung pada tipe unit.
Meskipun Anda juga dapat menggunakan ini untuk hanya menampilkan enabledunit dengan:
systemctl list-unit-files --state=enabled
Jika sebuah unit enabledberarti bahwa sistem akan memulainya saat startup. Meskipun mengatur sesuatu untuk enabledtidak benar-benar juga startjadi Anda harus melakukannya secara manual, atau reboot sistem setelah mengaturnya enabled.
Untuk mengaktifkan dan memulai pada saat yang sama:systemctl enable --now ...
Aurélien Ooms
1
--state=enabledtidak berpengaruh pada systemd versi 215 (pada Raspbian 8 Jessie), tetapi ia bekerja pada systemd versi 229 (pada Ubuntu 16.04.03 Xenial).
mpb
@ MB: Tapi belum berfungsi dengan baik pada versi 235 di Arch Linux.
64
Untuk membuat daftar semua systemdlayanan yang ada di state=activedansub=running
man systemctl
.Jawaban:
systemctl list-unit-files | grep enabled
akan mendaftar semua yang diaktifkan .Jika Anda ingin yang sedang berjalan , Anda perlu
systemctl | grep running
.Gunakan yang Anda cari. Diaktifkan, bukan berarti sedang berjalan. Dan berlari bukan berarti itu diaktifkan. Mereka adalah dua hal yang berbeda.
Diaktifkan berarti sistem akan menjalankan layanan pada boot berikutnya. Jadi, jika Anda mengaktifkan layanan, Anda masih perlu memulainya secara manual, atau reboot dan itu akan mulai.
Menjalankan berarti itu benar-benar berjalan sekarang, tetapi jika tidak diaktifkan, itu tidak akan mulai lagi ketika Anda reboot.
sumber
systemctl | grep running
jangan daftar apa pun untuk saya! Bahkan jika sesuatu berjalan hanya terdaftar sebagai statusnya seperti:enabled, disabled, masked, static
systemctl list-unit-files --state=running
man systemctl
menyatakan:Penjelasan:
LOAD
: Mencerminkan apakah definisi unit dimuat dengan benar.ACTIVE
: Status aktivasi unit tingkat tinggi, yaitu generalisasiSUB
.SUB
: Status aktivasi unit tingkat rendah, nilainya tergantung pada tipe unit.Meskipun Anda juga dapat menggunakan ini untuk hanya menampilkan
enabled
unit dengan:Jika sebuah unit
enabled
berarti bahwa sistem akan memulainya saat startup. Meskipun mengatur sesuatu untukenabled
tidak benar-benar jugastart
jadi Anda harus melakukannya secara manual, atau reboot sistem setelah mengaturnyaenabled
.sumber
systemctl enable --now ...
--state=enabled
tidak berpengaruh pada systemd versi 215 (pada Raspbian 8 Jessie), tetapi ia bekerja pada systemd versi 229 (pada Ubuntu 16.04.03 Xenial).Untuk membuat daftar semua
systemd
layanan yang ada distate=active
dansub=running
Untuk membuat daftar semua layanan
systemd
yang ada di dalamstate=active
dan sub berjalan atau keluarsumber
Untuk melihat layanan 'diaktifkan' termasuk yang masih berjalan di bawah pemula / init:
Untuk melihat semua layanan yang sedang berjalan, jalankan:
sumber
sshd
vsssh
dansyslog
vsrsyslog
.Juga ikhtisar semua layanan yang aktif dan gagal:
sumber