ลบตัวแทนออกจาก launchd

สารบัญ:

Anonim

ผู้ใช้ Mac ส่วนใหญ่ไม่จำเป็นต้องปรับแต่ง launchd และ launchctl ด้วยตนเอง แต่มีบางครั้งที่คุณถอนการติดตั้งหรือหยุดใช้แอปใน Mac OS X และตัวแทนบริการยังคงโหลดต่อไปโดยไม่จำเป็น เปิดตัว สิ่งนี้น่ารำคาญ แต่เอเจนต์อันธพาลเหล่านี้สามารถลบออกได้ง่ายผ่านบรรทัดคำสั่ง ดังนั้นให้เปิด Terminal แล้วไปกันเลย นอกจากนี้ยังมีสถานการณ์ที่ผู้ใช้ขั้นสูงอาจต้องการปรับแต่งเอเจนต์ที่โหลดลงใน launchd ไม่ว่าด้วยเหตุผลใดก็ตามไม่ว่าในกรณีใด เราจะให้รายละเอียดเกี่ยวกับวิธีแสดงรายการใน launchd วิธีลบออกจาก launchd ใน OS X และวิธีโหลดเอเจนต์อีกครั้งใน launchd บน Mac

คุณจำเป็นต้องมีความเข้าใจและความสะดวกสบายในการใช้ command line และ Terminal เพื่อใช้งานอย่างถูกต้อง ทำให้เหมาะสำหรับผู้ใช้ขั้นสูงที่มีความรู้เกี่ยวกับ launch daemons และวิธีติดตามพวกเขา ซึ่งบางครั้งเป็นเพียงเรื่องของการค้นหาในการตรวจสอบกิจกรรมของ Mac OS X หรือโดยใช้คำสั่ง launchctl ที่เราจะพูดถึงในไม่ช้า หากคุณตัดสินใจย้อนกลับการแก้ไข คุณยังสามารถโหลดบริการหรือดีมอนกลับเข้าไปใน launchd โดยใช้คำสั่งอื่น ซึ่งจะเลิกทำขั้นตอนการลบเริ่มต้นได้อย่างมีประสิทธิภาพ มาเริ่มกันเลย:

การลบ Launch Agents & Services จาก launchd ใน OS X

นี่คือ วิธีลบบริการออกจาก launchd เปิดใช้ Terminal แล้วใช้ไวยากรณ์ต่อไปนี้กับคำสั่ง launchctl:

launchctl ลบชื่อ

ตัวอย่างเช่น ถ้าฉันต้องการลบบริการชื่อ “com.annoying.service” ไวยากรณ์จะเป็น:

launchctl ลบ com.annoying.service

คุณอาจต้องนำหน้าคำสั่งด้วย sudo เพื่อลบบริการ ในกรณีนี้ คำสั่งจะเป็น:

sudo launchctl ลบ com.annoying.service

ด้วยคำนำหน้า sudo คุณจะต้องป้อนรหัสผ่านผู้ดูแลระบบก่อนที่คำสั่งจะดำเนินการ

วิธีดูสิ่งที่โหลดใน launchd

คุณยังสามารถตรวจสอบสิ่งที่โหลดใน launchd โดยใช้สตริงคำสั่งต่อไปนี้:

เปิดรายการctl

คำสั่งนี้แสดงรายการเอเจนต์และงานทั้งหมดที่โหลดลงใน launchd ทำให้คุณสามารถจัดการกับเอเจนต์ที่กำลังรันอยู่ได้อย่างง่ายดาย เนื่องจากมันทิ้งข้อมูลจำนวนมากลงบนหน้าจอพร้อมกัน คุณอาจต้องการไพพ์ข้อมูลผ่านคำสั่งมากหรือน้อย เช่น:

launchctl list |เพิ่มเติม

ซึ่งช่วยให้คุณกดปุ่มย้อนกลับเพื่อไปยังส่วนต่างๆ ของรายการได้ช้าลง

หากคุณทราบโดยทั่วไปเกี่ยวกับบริการที่คุณกำลังมองหา คุณสามารถใช้ "grep" เพื่อค้นหาบริการตัวแทนที่แม่นยำได้ ลองใช้ 'mdworker' เป็นตัวอย่าง::

launchctl list |grep mdworker

สิ่งนี้จะรายงานกลับเฉพาะ Launchagent ต่อไปนี้:

- 0 com.apple.mdworker.sizing - 0 com.apple.mdworker.single - 0 com.apple.mdworker.shared - 0 com.apple.mdworker .mail - 0 com.apple.mdworker.lsb - 0 com.apple.mdworker.isolation - 0 com.apple.mdworker.bundles - 0 com.apple.mdworker.32bit

สำหรับบางบริการ การดัมพ์รายการอาจแสดง PID (รหัสกระบวนการ) ของบริการที่ใช้งานอยู่เช่นกัน

กำลังโหลดตัวแทนกลับเข้าสู่ launchd

หากคุณตัดสินใจว่าต้องการเปิดใช้งานอีกครั้งและโหลดบริการกลับเข้าไปใน launchd อีกครั้ง ให้ใช้แฟล็ก 'load' ดังนี้:

launchctl โหลด com.example.service.to.load

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

ลบตัวแทนออกจาก launchd