คำสั่ง Systemctl เพื่อแสดงข้อมูลสรุปของการเรียกใช้บริการ


12

ซึ่งsystemctlตัวเลือกหรือคำสั่งผมจะใช้ในการแสดงบทสรุปของการบริการทั้งหมดที่กำลังทำงาน?


คุณควรยอมรับคำตอบของ @Zanna มันตอบคำถามของคุณได้มากกว่าที่คิดแม้ว่าจะเป็นแนวทางที่ถูกต้องก็ตาม
Videonauth

คำตอบ:


20

คุณสามารถใช้systemctlตัวเลือกบางอย่างของ:

-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.

ดังนั้นคุณอาจต้องการ:

systemctl --type=service --state=active list-units

ซึ่งแสดงรายการบริการที่ใช้งานทั้งหมดรวมถึงบริการที่ออก หากคุณหลังจากที่ใช้งานในขณะนี้คุณสามารถใช้:

systemctl --type=service --state=running list-units

3
systemctlคำสั่งโดยไม่ต้อง subcommands ใด ๆ ถือว่าlist-unitsดังนั้น ... systemctl --type-service --state=runningหรือเพียงแค่ธรรมดาsystemctlสำหรับการใช้งานได้อย่างรวดเร็ว
muru


4

หลังจากมองไปรอบ ๆ นานกว่าความจำเป็นฉันก็พบกับวิธีการที่แตกต่างกันเล็กน้อยในการพิจารณาบริการที่ทำงานอยู่ นอกจากนี้ยังแสดงวิธีการนับจำนวนบริการที่ใช้งาน วิธีนี้ทำให้มั่นใจได้ว่าจะไม่จับบางสิ่งโดยใช้คำว่าทำงานหรือบริการในชื่อบริการ

# 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}'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.