Fjern en agent fra launchd

Langt de fleste Mac-brugere behøver ikke manuelt at tweak launchd og launchctl, men der er tidspunkter, hvor du afinstallerer eller stopper med at bruge en app i Mac OS X, og en serviceagent fortsætter unødigt at indlæse launchd. Dette er irriterende, men disse rogue agenter er nemme at fjerne via kommandolinjen, så start Terminal og væk går vi. Derudover er der situationer, hvor avancerede brugere måske ønsker at finjustere agenter indlæst i launchd uanset årsag. Under alle omstændigheder beskriver vi, hvordan du lister i lanceringen, hvordan du fjerner dem fra launchd i OS X, og hvordan du genoverfører agenter til launchd på Mac.

Du skal have en vis forståelse og trøst ved at bruge kommandolinjen og Terminal til at bruge dette korrekt, hvilket gør dette ideelt til mere avancerede brugere, der har kendskab til lanceringsdemoner og hvordan man sporer dem ned, hvilket nogle gange kun er en sag at finde en i aktivitetsovervågningen i Mac OS X eller ved at bruge kommandoen launchctl, diskuterer vi snarest. Hvis du beslutter dig for at vende modifikationen, kan du også indlæse tjenesten eller dæmonen igen i launchd ved hjælp af en anden kommando, som effektivt udrydder det oprindelige fjernelsestrin. Lad os klare det:

Fjernelse af Launch Agents & Services fra launchd i OS X

Sådan fjerner du en service fra launchd . Start Terminal, og brug derefter følgende syntaks med launchctl-kommandoen:

launchctl remove name

Hvis jeg f.eks. Vil fjerne en tjeneste, der hedder "com.annoying.service", vil syntaksen være:

launchctl remove com.annoying.service

Du skal muligvis prefix kommandoen med sudo for at fjerne tjenesten, i så fald vil kommandoen være:

sudo launchctl remove com.annoying.service

Med sudo-præfikset skal du indtaste en administratoradgangskode, før kommandoen udføres.

Sådan ses Hvad er lastet i launchd

Du kan også tjekke, hvad der er indlæst i launchd ved at bruge følgende kommandostreng:

launchctl list

Denne kommando viser alle agenter og job indlæst i launchd, så du nemt kan manipulere de agenter, der kører. Fordi det dumper et ton af information på skærmen på en gang, kan du måske rør det gennem de mere eller mindre kommandoer som sådan:

launchctl list |more

Dette gør det muligt at trykke på returknappen for at navigere langsommere gennem listen.

Hvis du generelt kender den service, du leder efter, kan du også bruge "grep" for at finde den præcise agenter service, lad os bruge 'mdworker' som et eksempel ::

launchctl list |grep mdworker

Dette vil kun rapportere om følgende lanceringsagenter:

- 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

For nogle tjenester kan dumpning af listen også vise PID (proces-id) for den aktive tjeneste.

Indlæser en agent tilbage i launchd

Hvis du beslutter dig for at genaktivere og genindlæse en tjeneste tilbage i launchd, skal du bruge 'load' flag som sådan:

launchctl load com.example.service.to.load

Nogle agenter vil indlæse øjeblikkeligt uden problemer. For andre skal du muligvis genstarte Mac'en, før den indlæste tjeneste fungerer som ønsket igen, men det er også tilstrækkeligt, at nogle gange logger ud og tilbage.