การกระจาย Linux หลักทั้งหมดใช้ Systemd ซึ่งเป็นระบบเริ่มต้นที่ทำงานโดยยึดตามการเปิดและปิดไฟล์ “บริการ” หากคุณกำลังพยายามแสดงรายการไฟล์บริการเหล่านี้ แต่ไม่รู้ว่าต้องทำอย่างไร คุณจะต้องใช้คำสั่ง systemctl
ในคู่มือนี้ เราจะพูดถึงวิธีต่างๆ ในการแสดงรายการไฟล์บริการ Systemd บน Linux ในการเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณใช้ระบบปฏิบัติการ Linux กับ Systemd จากนั้นเปิดหน้าต่างเทอร์มินัลแล้วทำตาม
ใช้ Systemd เพื่อแสดงรายการบริการที่ใช้งานอยู่
หากคุณใช้ Systemd เป็นจำนวนมาก คุณอาจต้องการทราบว่าบริการใดทำงานอยู่ในขณะที่ระบบ Linux ของคุณบูตอยู่ การแสดงรายการบริการที่ใช้งานอยู่นั้นง่ายมาก และคุณสามารถทำได้โดยใช้คำสั่ง systemctl –type=service systemctl –type=service –state=running
เมื่อรันคำสั่งนี้ จะแสดงตารางของบริการทั้งหมด หากมีการใช้งานอยู่ รวมทั้งคำอธิบายสั้นๆ ในการรันโปรแกรมนี้ ให้เปิดหน้าต่างเทอร์มินัล เมื่อหน้าต่างเทอร์มินัลเปิดขึ้น ให้รันคำสั่งด้านล่าง
systemctl --type=service --state=running
หากคุณกำลังพยายามกรองบริการที่ใช้งานอยู่ทั้งหมดสำหรับบริการใดบริการหนึ่ง การดูตารางขนาดใหญ่นี้อาจเป็นเรื่องที่น่าเบื่อหน่าย โชคดีที่คำสั่ง systemctl สามารถใช้ร่วมกับคำสั่ง grep เป็นกลไกการกรองได้
ตัวอย่างเช่น หากต้องการตรวจสอบว่า “snapd.service” กำลังทำงานและโหลดอยู่หรือไม่ คุณสามารถเรียกใช้ systemctl –type=service –state=running | grep ‘snapd’ และผลลัพธ์จะแสดงเฉพาะบริการ Snapd แทนที่จะเป็นทั้งตาราง
systemctl --type=service --state=running | grep 'snapd'
หากคุณต้องการบันทึกผลลัพธ์ของตารางเป็นไฟล์ข้อความในภายหลัง ให้ใช้คำสั่งต่อไปนี้
systemctl --type=service --state=runningrunning > ~/active-services.txt
หากต้องการดูไฟล์ข้อความเมื่อใดก็ได้ ให้รันคำสั่ง cat ด้านล่าง
cat ~/active-services.txt
ใช้ Systemd เพื่อแสดงรายการบริการที่ไม่ได้ใช้งาน
การแสดงรายการบริการ Systemd ที่ใช้งานอยู่นั้นมีประโยชน์ แต่สิ่งที่เกี่ยวกับบริการที่ไม่ได้ใช้งานล่ะ ใช่ มันเป็นไปได้ที่จะแสดงรายการเหล่านั้นเช่นกัน นี่คือวิธีการ ขั้นแรก เปิดหน้าต่างเทอร์มินัล
เมื่อหน้าต่างเทอร์มินัลเปิดและพร้อมใช้งาน ให้รันคำสั่ง systemctl –type=service แต่ในช่อง –state= ให้วาง “inactive” แทน “running” การทำเช่นนี้ คุณสามารถดูได้ว่าบริการ Systemd ใดที่ไม่ได้ใช้งานบนระบบ Linux ของคุณ
systemctl --type=service --state=inactive
เช่นเดียวกับบริการที่ใช้งานอยู่ Systemd จะสร้างตารางที่ดีและแสดงให้คุณเห็นว่าบริการใดที่ Systemd ไม่ทำงาน ไม่ทำงาน และไม่ได้ใช้งาน หากคุณต้องการกรองตารางนี้เพื่อค้นหาว่าบริการใดไม่ทำงาน คุณสามารถรวมเข้ากับคำสั่ง grep
ตัวอย่างเช่น ในการพิจารณาว่าไฟล์ “updatedb.service” ไม่ทำงานหรือไม่ คุณสามารถรวม systemctl –type=service –state=inactive เข้ากับคำสั่ง grep ด้านล่างเพื่อค้นหาในตาราง
systemctl --type=service --state=inactive | grep 'updatedb.service'
หากคุณต้องการบันทึกไฟล์บริการ Systemd ที่ไม่ได้ใช้งานทั้งหมดลงในไฟล์ข้อความเพื่ออ่านในภายหลัง ให้ใช้คำสั่งต่อไปนี้
systemctl --type=service --state=inactive > ~/inactive-services.txt
หากต้องการอ่านไฟล์ข้อความนี้จากหน้าต่างเทอร์มินัล ให้ใช้คำสั่ง cat
cat ~/inactive-services.txt
ใช้ Systemd เพื่อแสดงรายการบริการที่ติดตั้งทั้งหมด
หากคุณต้องการดูบริการ Systemd ที่ติดตั้งทั้งหมด ไม่ว่าจะใช้งานอยู่หรือไม่ก็ตาม คุณจะต้องใช้คำสั่ง systemctl list-unit-files –type=service และไม่รวมสวิตช์บรรทัดคำสั่ง –state ด้วยการยกเว้น –state Systemd จะสามารถแสดงรายการไฟล์บริการแต่ละไฟล์บนคอมพิวเตอร์ของคุณได้อย่างง่ายดาย
systemctl list-unit-files --type=service
เมื่อดำเนินการตามคำสั่งข้างต้นแล้ว Systemd จะพิมพ์ตารางที่มีไฟล์บริการทุกไฟล์ในระบบ จากที่นี่ คุณสามารถจัดเรียงตารางเพื่อค้นหาไฟล์บริการที่คุณต้องการ
หากคุณไม่พบไฟล์บริการเฉพาะ คุณสามารถรวมคำสั่ง systemctl list-unit-files –type=service กับคำสั่ง grep เพื่อใช้ตัวกรองได้ ใช้คำสั่งด้านล่าง กรองตารางเพื่อค้นหาไฟล์บริการที่คุณต้องการ
systemctl list-unit-files --type=service | grep 'my-service'
ต้องการส่งออกบริการ Systemd ทั้งหมดไปยังไฟล์ข้อความเพื่ออ่านในภายหลังหรือไม่ ดำเนินการคำสั่งต่อไปนี้
systemctl list-unit-files --type=service > ~/service-files.txt
คุณสามารถดูไฟล์ข้อความได้ตลอดเวลาด้วยคำสั่ง cat ด้านล่าง
cat ~/service-files.txt
ใช้ Systemd เพื่อแสดงสถานะของแต่ละบริการ
แม้ว่าการทราบวิธีการแสดงรายการบริการ Systemd ทั้งหมดจะเป็นประโยชน์ แต่บริการที่ใช้งานอยู่และไม่ได้ใช้งาน แต่ก็ยังมีประโยชน์ในการทราบวิธีแสดงรายการสถานะของบริการแต่ละรายการ นี่คือวิธีการทำ
ขั้นแรก เปิดหน้าต่างเทอร์มินัล เมื่อหน้าต่างเทอร์มินัลเปิดขึ้น ให้ใช้คำสั่งสถานะ systemctl ในบริการเฉพาะ ตัวอย่างเช่น หากต้องการค้นหาสถานะของ “NetworkManager.service” ให้เรียกใช้คำสั่งต่อไปนี้
systemctl status NetworkManager
หากคุณต้องการส่งออกเอาต์พุตของคำสั่งสถานะเป็นไฟล์ข้อความเพื่ออ่านในภายหลัง คุณสามารถป้อนคำสั่งด้านล่าง
systemctl status MyService > ~/MyService-status.txt
หากต้องการดูไฟล์นี้ ให้รันคำสั่ง cat ต่อไปนี้
cat ~/MyService-status.txt