Ta bort en agent från launchd

Den stora majoriteten av Mac-användare behöver inte manuellt tweak launchd och launchctl, men det finns tillfällen när du avinstallerar eller slutar använda en app i Mac OS X och ett servicemeddelande fortsätter att ladda in launchd. Det här är irriterande, men dessa rogue agenter är lätta att ta bort via kommandoraden, så starta Terminal och borta går vi. Dessutom finns det situationer där avancerade användare kanske vill tweak agenter laddas i launchd oavsett anledning. I vilket fall som helst kommer vi att beskriva hur man listar objekt i launchd, hur man tar bort dem från launchd i OS X, och hur man laddar om agenter till launchd på Mac.

Du måste ha lite förståelse och bekvämlighet med att använda kommandoraden och Terminal för att använda det här på ett korrekt sätt, vilket gör det här idealet för mer avancerade användare som har kunskap om att starta daemoner och hur man spårar ner dem, vilket ibland bara är en fråga att hitta en i Aktivitetsövervakningen för Mac OS X, eller genom att använda kommandot launchctl kommer vi att diskutera inom kort. Om du bestämmer dig för att vända modifieringen kan du också ladda tjänsten eller demonen till launchd med ett annat kommando, vilket effektivt eliminerar det ursprungliga borttagningssteget. Låt oss ta itu med det:

Ta bort starta agenter och tjänster från starta i OS X

Så här tar du bort en tjänst från launchd . Starta terminalen och använd sedan följande syntax med kommandot launchctl:

launchctl remove name

Om jag till exempel vill ta bort en tjänst som heter "com.annoying.service" skulle syntaxen vara:

launchctl remove com.annoying.service

Du kan behöva prefixera kommandot med sudo för att ta bort tjänsten, i så fall skulle kommandot vara:

sudo launchctl remove com.annoying.service

Med sudo-prefixet måste du ange ett administratörslösenord innan kommandot ska utföras.

Så här ser du vad som laddas i lanseringen

Du kan också kolla vad som laddas in i launchd genom att använda följande kommandosträng:

launchctl list

I det här kommandot visas alla agenter och jobb som laddas in i launchd, så att du enkelt kan hantera agenterna som körs. Eftersom det dumpar en massa information på skärmen på en gång, kanske du vill röra den genom mer eller mindre kommandon som så:

launchctl list |more

På så sätt kan du slå returknappen för att navigera långsammare genom listan.

Om du i allmänhet vet vilken tjänst du letar efter kan du också använda grep för att hitta den exakta agenten, låt oss använda "mdworker" som ett exempel:

launchctl list |grep mdworker

Detta skulle rapportera tillbaka endast följande startagenter:

- 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

För vissa tjänster kan dumpning av listan också visa PID (process-ID) för den aktiva tjänsten.

Laddar en agent tillbaka till launchd

Om du bestämmer dig för att återställa och ladda om en tjänst tillbaka till launchd, använd "ladda" -flaggan så här:

launchctl load com.example.service.to.load

Vissa agenter laddas omedelbart utan problem. För andra kan du behöva starta om Mac-datorn innan den laddade tjänsten fungerar som den är tänkt igen, men det är också tillräckligt att logga ut och bakåt ibland.