Yang systemctl
pilihan atau perintah akan saya gunakan untuk menampilkan ringkasan dari semua layanan yang sedang berjalan?
Yang systemctl
pilihan atau perintah akan saya gunakan untuk menampilkan ringkasan dari semua layanan yang sedang berjalan?
Jawaban:
Anda dapat menggunakan beberapa systemctl
opsi:
-t, --type=
The argument should be a comma-separated list of unit types such as
service and socket.
If one of the arguments is a unit type, when listing units, limit
display to certain unit types. Otherwise, units of all types will
be shown.
As a special case, if one of the arguments is help, a list of
allowed values will be printed and the program will exit.
--state=
The argument should be a comma-separated list of unit LOAD, SUB, or
ACTIVE states. When listing units, show only those in the specified
states. Use --state=failed to show only failed units.
As a special case, if one of the arguments is help, a list of
allowed values will be printed and the program will exit.
Jadi mungkin Anda ingin:
systemctl --type=service --state=active list-units
Yang mencantumkan semua layanan aktif termasuk yang telah keluar. Jika Anda hanya mengejar yang berjalan saat ini, Anda dapat menggunakan:
systemctl --type=service --state=running list-units
systemctl
perintah tanpa subcommands mengasumsikan list-units
, jadi ... systemctl --type-service --state=running
, atau hanya polos systemctl
untuk digunakan cepat.
Itu adalah (lihat man 1 systemctl
):
systemctl list-units | grep -E 'service.*running'
atau (lihat juga man 8 service
)
service --status-all
Di mana [+]
menunjukkan layanan yang benar-benar berjalan.
Setelah mencari-cari lebih lama dari yang diperlukan, saya menemukan metode penentuan layanan yang berjalan sedikit berbeda. Ini juga menunjukkan bagaimana cara menghitung jumlah layanan yang berjalan. Cara ini memastikan bahwa itu tidak sengaja menangkap sesuatu dengan kata menjalankan atau layanan dalam nama layanan itu sendiri.
# Output all active services:
systemctl -t service --state=active --no-pager --no-legend
# Count of all active services:
systemctl -t service --state=active --no-pager --no-legend | grep -c -
# Output all running services:
systemctl -t service --state=active --no-pager --no-legend | egrep '^*\.service.*running'
# Count of all running services:
systemctl -t service --state=active --no-pager --no-legend | egrep '^*\.service.*running' -c -
# Output only the service and its description:
systemctl -t service --state=active --no-pager --no-legend | egrep '^*\.service.*running' | awk 'BEGIN { FS = " ";} {for (i = 2; i <= 4; i++) { $i = "" }; print}'