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.