วิธีการลบไฟล์บริการ Systemd

Withi Kar Lb Fil Brikar Systemd



แพ็คเกจจำนวนมากบน Linux มาพร้อมกับไฟล์บริการที่ทำงานอยู่เบื้องหลัง บ่อยครั้งที่ไฟล์บริการจะไม่ถูกลบแม้ว่าจะลบแพ็คเกจที่เกี่ยวข้องแล้วก็ตาม ผลที่ตามมา การสะสมบริการที่ไม่พึงประสงค์ทำให้เกิดภาระเพิ่มเติมในระบบ ในกรณีเช่นนี้ จำเป็นต้องลบไฟล์บริการที่ไม่จำเป็นออก

ในการลบไฟล์บริการ จำเป็นอย่างยิ่งที่จะต้องเข้าใจชุดของไดเร็กทอรีที่มีไฟล์บริการนั้น

โดยทั่วไปไฟล์บริการจะถูกจัดเก็บไว้ในไดเร็กทอรีเฉพาะหลายไดเร็กทอรี ขึ้นอยู่กับวัตถุประสงค์และใครเป็นผู้ติดตั้ง รายการไดเรกทอรีได้รับด้านล่าง







/lib/systemd/system ไฟล์บริการจากแพ็คเกจที่ดาวน์โหลด
/etc/systemd/system ไฟล์บริการโดยผู้ดูแลระบบ
~/.config/systemd/users บริการไฟล์โดยผู้ใช้ทั่วไป

ดังนั้น หากมีการดาวน์โหลดแพ็คเกจและให้บริการ daemon และบริการต่างๆ ไฟล์เหล่านี้จะถูกจัดเก็บไว้ใน /lib/systemd/system ไดเรกทอรี ที่ /etc/systemd/system ไดเร็กทอรีมีไฟล์บริการที่สร้างโดยผู้ดูแลระบบและมีเพียงผู้ใช้ sudo เท่านั้นที่สามารถแก้ไขได้ ในขณะที่ ~/.config/systemd/users ไดเร็กทอรีมีไฟล์บริการที่สร้างโดยผู้ใช้ปกติ

วิธีการเข้าถึงไฟล์บริการ

ขั้นตอนแรกของการลบไฟล์บริการคือการค้นหาเส้นทางที่แน่นอนของไฟล์นั้น หากต้องการค้นหาเส้นทางให้ใช้ สถานะ systemctl คำสั่งพร้อมชื่อบริการ

สถานะ systemctl - บริการ-ชื่อ -

หากต้องการค้นหาชื่อบริการ คุณสามารถแสดงรายการบริการที่ทำงานอยู่ทั้งหมดได้

systemctl รายการหน่วยไฟล์ --พิมพ์ =บริการ --สถานะ = กำลังวิ่ง

หากคุณต้องการแสดงรายการบริการทั้งหมด ให้ใช้คำสั่ง systemctl ด้วย -พิมพ์ และ -สถานะ ตัวเลือก.

systemctl รายการหน่วยไฟล์

เช่น การหาเส้นทางหน่วยของ myservice.service ฉันจะรันคำสั่งสถานะ

สถานะ systemctl myservice.service

ผลลัพธ์จะแสดงเส้นทางของไฟล์หน่วยใน โหลดแล้ว ส่วน.

เมื่อเราได้รับเส้นทางของบริการแล้ว เราจะดำเนินการลบมันในขั้นตอนต่อไป

คำเตือน: ก่อนที่จะลบไฟล์เซอร์วิสออกจากระบบ จำเป็นอย่างยิ่งที่จะต้องมีความเข้าใจอย่างสมบูรณ์เกี่ยวกับไฟล์เซอร์วิสของระบบและความสำคัญของไฟล์เหล่านั้นสำหรับระบบ การลบไฟล์บริการที่สำคัญออกจากระบบอาจทำให้เกิดความเสียหายอย่างถาวร

วิธีการลบไฟล์บริการ

หากต้องการลบบริการบน Linux ให้ทำดังนี้ ระบบ และ RM จะใช้ยูทิลิตี้บรรทัดคำสั่ง ใช้ systemctl เพื่อหยุดและปิดใช้งานบริการ จากนั้นจึงใช้งาน RM เพื่อลบไฟล์บริการออกจากไดเร็กทอรีที่เกี่ยวข้อง

หากต้องการลบไฟล์บริการ ให้ทำตามลำดับคำสั่งด้านล่าง

ซูโดะ systemctl หยุดบริการ-NAME

ซูโดะ systemctl ปิดการใช้งานชื่อบริการ

ซูโดะ RM - lib - ระบบ - ระบบ - บริการ-ชื่อ #บริการจากแพ็คเกจที่ดาวน์โหลดมา

ซูโดะ RM - ฯลฯ - ระบบ - ระบบ - บริการ-ชื่อ #บริการโดยผู้ดูแลระบบ

ซูโดะ RM - - .กำหนดค่า - ระบบ - ผู้ใช้ - บริการ-ชื่อ #บริการโดยผู้ใช้ทั่วไป

ซูโดะ systemctl daemon-รีโหลด

ซูโดะ การรีเซ็ต systemctl ล้มเหลว

ประการแรก แนะนำให้หยุดบริการเพื่อให้แน่ใจว่าบริการจะไม่ทำงานในระหว่างการลบ แม้ว่าการปิดใช้งานจะป้องกันไม่ให้เริ่มต้นใหม่อีกครั้งก็ตาม จากนั้นจะต้องปิดการใช้งานซึ่งจะป้องกันไม่ให้บริการเริ่มทำงานโดยอัตโนมัติ การปิดใช้งานบริการจะลบลิงก์สัญลักษณ์ที่สร้างขึ้นใน .ต้องการ/ หรือ . กำหนดให้มี/ ไดเรกทอรี หลังจากนั้นให้ลบไฟล์บริการโดยใช้นามสกุล RM คำสั่งจากไดเร็กทอรีที่เกี่ยวข้อง

โหลดการกำหนดค่า systemd ใหม่โดยใช้ daemon-รีโหลด และการดำเนินการ รีเซ็ตล้มเหลว สั่งการ. คำสั่งรีเซ็ตล้มเหลวจะรีเซ็ตบริการทั้งหมดที่มีสถานะล้มเหลว

ตัวอย่าง

ในตัวอย่างนี้ เราจะลบบริการที่สร้างโดยผู้ดูแลระบบ ชื่อบริการคือ myservice.service และถูกวางไว้ใน /etc/systemd/system ไดเรกทอรี

ตรวจสอบสถานะของบริการ

สถานะ systemctl myservice.service

บริการกำลังทำงานอยู่ สังเกตเส้นทางตรงข้ามกับ โหลดแล้ว ส่วนและ ปิดการใช้งาน บริการ.

ซูโดะ systemctl ปิดการใช้งาน myservice.service

นอกจากนี้ยังจะลบลิงก์สัญลักษณ์ออกจาก /etc/systemd/system ไดเรกทอรี

จากนั้นให้ลบไฟล์บริการโดยใช้นามสกุล RM เส้นทางไฟล์คำสั่งและบริการ

ซูโดะ RM - ฯลฯ - ระบบ - ระบบ - myservice.service

ตอนนี้ให้โหลดการกำหนดค่า systemd อีกครั้งเพื่อใช้การเปลี่ยนแปลง

systemctl daemon-รีโหลด

นั่นแหละ! บริการถูกลบออกและไม่ได้อยู่ในระบบของคุณอีกต่อไป ตรวจสอบโดยการตรวจสอบสถานะการบริการ

บทสรุป

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