Fejlfinding af Mac-apps på gammeldags måde med POSIX-signaler

  • Michael Cain
  • 0
  • 3559
  • 517
Reklame

I Activity Monitor er der en kryptisk menuindstilling til Send signal til proces. Har du nogensinde spekuleret på, hvad det var? Hvis du vælger det, vil du se obskure udtryk som SIGINT og SIGHUP, som ikke nøjagtigt rydder op. Så hvad er disse signaler præcist?

Disse signaler er et resultat af Unix-grundlaget Mac OS X Yosemite, fra perspektivet af en Linux-bruger Mac OS X Yosemite, fra perspektivet af en Linux-bruger Mac OS X bruges som plakatbarnet til et rent og elegant interface. Som Linux-forfatter er det min pligt at foretage sammenligninger mellem Linux-distros, men også imod konkurrencen. i hjertet af macOS. Terminal har nogle af disse signaler indbygget: når du rammer Ctrl + C For at stoppe en kørende kommando sender du processen SIGINT at afbryde og stoppe den aktuelt kørende kommando. De var en af ​​de første måder, apps kunne kommunikere med hinanden og er en del af det gamle “Bærbart operativsysteminterface” (POSIX) standarder.

Selvom det er dejligt at forstå det grundlæggende om, hvordan dit system fungerer, kan du også bruge disse signaler til at indsamle oplysninger om forkert opførelse af apps.

Hvad er POSIX?

POSIX er grundlæggende standard for Unix og Unix-lignende operativsystemer. Blandt disse kompatible systemer er macOS, som blev gjort til at være Unix-kompatibel. Kernen er Darwin, en Unix-kerne med rødder, der dateres tilbage til NeXTSTEP. Det var i sig selv en gaffel af BSD, en af ​​de originale Unix-varianter.

POSIX sikrer, at alle disse operativsystemer håndterer kode på forventede måder, så udviklerne kan vide, at deres kode virkelig er bærbar. Når de sender et af disse signaler på en anden maskine til en proces, er de data, de får tilbage, i et format, de kan forudse og behandle. Dette er en grov forenkling af omkring 40 års computerhistorie, men du får den generelle idé.

Når du kommunikerer med de mest basale dæmoner, der udgør Unix-basen af ​​macOS, er disse signaler de bedste. Demoner er baggrundsprocesser, der kører det væsentlige på din computer - eller i almindelige macOS-parlance, tjenester. Den berygtede discoveryd er et eksempel. Dette var OS X Yosemite 10.10 erstatning for mDNSResponder, en anden tjeneste skylden for netværksproblemerne i denne opdatering.

Billedkredit: Dominik Rusiecki via Freeimages

Afhængig af den måde, en app er designet til at modtage signaler, kan du sende et signal for at afslutte en app for at oprette, hvad der kaldes en kernedump. Core dumps indeholder alle de aktuelle data om et kørende program. Disse er vigtige for fejlfinding af apps, der konstant går ned. På Mac dumpes disse i Mach-O-filformat, som du kan læse i MacOS-udviklingsmiljøet kaldet Xcode. De fleste brugere gør sandsynligvis ikke meget med disse, men hvis du er frustreret over et app-problem, kan de være nyttige at sende til en udvikler for support.

Der er endnu en lille smule klassisk computing, der viser dens rødder her. Mach-O-filformatet deler sit navn med Mach-mikrokernen. Sammen med BSD er dette en del af rødderne af macOS, og de to er en del af den grundlæggende kerne, XNU. Mach er ikke så storied som BSD, så det får ikke meget af pressen, men er en del af, hvad der adskiller Apples operativsystem fra andre Unix-varianter.

Så hvordan kan jeg bruge dem?

Vi har alle været der før: du får en opdatering til en app, eller downloader en ny app Sådan installeres og fjernes Mac-software: 5 lette metoder Sådan installeres og fjernes Mac-software: 5 enkle metoder Skiftes til en Mac og kommer til griber fat i det grundlæggende? Spekulerer du på, hvordan du installerer software fra kommandolinjen? Har du gamle Windows-apps, som du simpelthen skal køre på din Apple-computer? , og det hænger hver gang du åbner det. Du åbner Tving op fra Apple Menu og se applikationen vises som Svarer ikke. Værre endnu er det en eller anden baggrundsproces, der trækker dit system ned.

Åben Aktivitetsmonitor og klik på processen, der ikke svarer. Gå derefter til Udsigt menu og vælg Send signal til behandling. En menu dukker op og giver dig mulighed for at vælge hvilket signal du vil sende til processen, vælg dit signal og trykke på Sende.

Hvis du foretrækker Terminal 4 Cool Things, du kan gøre med Mac Terminal 4 Cool Ting, du kan gøre med Mac Terminal Terminal er Mac OS X-analog til Windows-kommandoprompten, eller CMD. Det er et værktøj, som du sandsynligvis allerede ved, der giver dig mulighed for at kontrollere din computer ved hjælp af tekstkommandoer, i modsætning til ..., du bruger en kommando, du allerede er bekendt med. Det dræbe kommando bruges til at stoppe en proces. Hvis du tilføjer -s Du kan tilføje et nummer for at sende et signal til den proces, du dræber. Her er en liste over antallet af fælles kommandolister i dræbe mand side:

  • 1 - HUP (læg på)
  • 2 - INT (afbryde)
  • 3 - SLUK (afslutte)
  • 6 - ABRT (abort)
  • 9 - KILL (ikke-fangelig, ikke-ignorabel drab)
  • 15 - TERM (software terminering signal)

Der er nogle andre signaler, som du også kan sende, disse er bare de mest almindelige. Der er en omfattende liste over koder tilgængelige her.

Hvornår bruger jeg dem?

Nu hvor du ved, hvad du skal gøre med POSIX-signalerne, kan du bruge dem til at stoppe dine ophængte processer rent. For at være retfærdig skal du ikke bruge disse koder hver dag. Når du arbejder med en udvikler i et ulige app-nedbrud eller hjælper din sysadmin-beta med at teste din virksomheds interne apps, kan disse koder hjælpe med at få de oplysninger, de har brug for.

Hvis appen er kodet for at oprette disse dumps, vil du finde dem i biblioteket / kerner gør dette til et nemt bibliotek at se på, når du får data til et program, der går ned eller hænger sammen. Du kan tjekke her og se, hvilke dumpe der er i biblioteket ved hjælp af ls -a kommando. Dette viser dig alle filerne i det bibliotek, hvorefter du kan kopiere dem til en mere tilgængelig katalogmusik kommandoen mv filnavn destination.

I Terminal brug kommando cd / kerner for at skifte til biblioteket, derefter ls -a for at liste med indholdet. For at flytte en fil til mappen Dokumenter skal du blot bruge mv filnavn / Brugere / brugernavn / Dokumenter (erstatter filnavn og brugernavn).

Billedkredit: Erika Varga via Freeimages

Hvis du er en længe Unix-bruger, der flyttede til Mac, hvilke andre lidt kendte funktioner er derude? Hvis du er interesseret i at tjekke et projekt, der kun bruger open source-grundlaget for macOS, så tjek PureDarwin. Fortæl os, hvordan det fungerede i kommentarerne. Vi vil også gerne høre, når POSIX-signaler løste et stædigt problem med din Mac.

Har du brugt POSIX-signaler til fejlfinding før?

Billedkreditter: Dean Drobot / Shutterstock




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.