Verwijder een agent uit launchd
Inhoudsopgave:
De overgrote meerderheid van Mac-gebruikers hoeft launchd en launchctl niet handmatig aan te passen, maar er zijn momenten dat je een app verwijdert of stopt met het gebruik van een app in Mac OS X en een serviceagent blijft onnodig laden gelanceerd. Dit is vervelend, maar deze malafide agenten zijn eenvoudig te verwijderen via de opdrachtregel, dus start Terminal en daar gaan we. Bovendien zijn er situaties waarin gevorderde gebruikers om welke reden dan ook de in launchd geladen agents willen tweaken.In ieder geval zullen we gedetailleerd beschrijven hoe items in launchd kunnen worden weergegeven, hoe ze kunnen worden verwijderd uit launchd in OS X, en ook hoe je agents opnieuw kunt laden in launchd op de Mac.
Je moet enig begrip en comfort hebben van het gebruik van de opdrachtregel en Terminal om dit correct te gebruiken, waardoor dit ideaal is voor meer gevorderde gebruikers die kennis hebben van lanceringsdaemons en hoe ze op te sporen, wat soms gewoon een kwestie is van er een vinden in de Activity Monitor van Mac OS X, of door de launchctl-opdracht te gebruiken die we binnenkort zullen bespreken. Als u besluit de wijziging ongedaan te maken, kunt u de service of daemon ook weer in launchd laden met een andere opdracht, waarmee de initiële verwijderingsstap in feite ongedaan wordt gemaakt. Laten we ter zake komen:
Launding Agents & Services verwijderen uit launchd in OS X
Hier is hoe u een service uit de lancering kunt verwijderend. Start Terminal en gebruik vervolgens de volgende syntaxis met de opdracht launchctl:
launchctl naam verwijderen
Als ik bijvoorbeeld een service met de naam "com.irritant.service" wil verwijderen, is de syntaxis:
launchctl verwijder com.irritant.service
Mogelijk moet u de opdracht voorafgaan met sudo om de service te verwijderen, in dit geval is de opdracht:
sudo launchctl verwijder com.irritant.service
Met het sudo-voorvoegsel moet u een beheerderswachtwoord invoeren voordat de opdracht wordt uitgevoerd.
Hoe te zien wat er geladen is tijdens het opstartend
Je kunt ook controleren wat er in launchd is geladen door de volgende opdrachtreeks te gebruiken:
launchctl-lijst
Deze opdracht geeft een overzicht van alle agents en taken die in launchd zijn geladen, zodat u eenvoudig de actieve agents kunt manipuleren. Omdat het een heleboel informatie tegelijk op het scherm dumpt, wil je het misschien door de min of meer commando's leiden, zoals:
launchctl-lijst |meer
Hiermee kunt u op de Enter-toets drukken om langzamer door de lijst te navigeren.
Als u de service die u zoekt in het algemeen kent, kunt u ook "grep" gebruiken om de exacte agentenservice te vinden, laten we 'mdworker' als voorbeeld gebruiken::
launchctl-lijst |grep mdworker
Dit rapporteert alleen de volgende launchagents:
- 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.bundels - 0 com.apple.mdworker.32bit
Voor sommige services kan bij het dumpen van de lijst ook de PID (proces-ID) van de actieve service worden weergegeven.
Een agent opnieuw laden in launchd
Als je besluit dat je een service opnieuw wilt inschakelen en opnieuw wilt laden in launchd, gebruik dan de 'load'-vlag als volgt:
launchctl load com.example.service.to.load
Sommige agents worden zonder problemen direct geladen. Voor anderen moet u de Mac mogelijk opnieuw opstarten voordat de geladen service weer werkt zoals bedoeld, maar soms is uitloggen en weer inloggen ook voldoende.