Annonse
I Activity Monitor er det et kryptisk menyalternativ å Send signal til prosess. Har du noen gang lurt på hva det var? Hvis du velger det, vil du se uklare vilkår som SIGINT og SIGHUP, som ikke akkurat renser opp ting. Så hva er egentlig disse signalene?
Disse signalene er et resultat av Unix foundation Mac OS X Yosemite, fra perspektivet til en Linux-brukerMac OS X brukes som plakatbarn for et rent og elegant grensesnitt. Som Linux-skribent er det min plikt å sammenligne Linux-distros, men også mot konkurransen. Les mer i hjertet av macOS. Terminal har noen av disse signalene innebygd: når du treffer Ctrl + C Hvis du vil stoppe en kommando som kjører, sender du prosessen SIGINT å avbryte og stoppe kommandoen som kjører. De var en av de første måtene apper kunne kommunisere med hverandre og er en del av gamle “Portable Operating System Interface” (POSIX) standarder.
Selv om det er fint å forstå det grunnleggende om hvordan systemet ditt fungerer, kan du også bruke disse signalene til å fange informasjon om feil oppførsel av apper.
Hva er POSIX?
POSIX er grunnleggende standard for Unix og Unix-lignende operativsystemer. Blant disse kompatible systemene er macOS, som ble laget for å være Unix-kompatibel. I kjernen ligger Darwin, en Unix-kjerne med røtter som dateres tilbake til NeXTSTEP. Det selv var en gaffel av BSD, en av de originale Unix-variantene.
POSIX sikrer at alle disse operativsystemene håndterer kode på forventede måter, slik at utviklere kan vite at koden deres virkelig er bærbar. Når de sender et av disse signalene på en annen maskin til en prosess, er dataene de får tilbake i et format de kan forutse og behandle. Dette er en grov forenkling av rundt 40 år med datahistorie, men du får den generelle ideen.
Når du kommuniserer med de mest grunnleggende demoner som utgjør Unix-basen til macOS, er disse signalene de beste. Demoner er bakgrunnsprosessene som kjører det vesentlige av datamaskinen din - eller til felles Mac os parlance, tjenester. Den beryktede discoveryd er et eksempel. Dette var OS X Yosemite 10.10 erstatning for mDNSResponder, en annen tjeneste skylden for nettverksproblemene i den oppdateringen.
Avhengig av hvordan en app er designet for å motta signaler, kan du sende et signal for å avslutte en app for å lage det som kalles en kjernedump. Kjernedumpe inneholder alle gjeldende data om et kjørende program. Disse er viktige for feilsøking av apper som stadig krasjer. På Mac dumpes disse i Mach-O-filformatet, som du kan lese i utviklingsmiljøet MacOS kalt Xcode. De fleste brukere vil sannsynligvis ikke gjøre mye med disse, men hvis du er frustrert over et appproblem, kan de være nyttige å sende til en utvikler for support.
Det er en annen liten bit av klassisk databehandling som viser røttene her. Mach-O-filformatet deler navnet med Mach-mikrokernelen. Sammen med BSD er dette en del av røttene til macOS, og de to er en del av grunnleggende kjernen, XNU. Mach er ikke så lagret som BSD, så det får ikke mye presse, men er en del av det som skiller Apples operativsystem fra andre Unix-varianter.
Så hvordan kan jeg bruke dem?
Vi har alle vært der før: du får en oppdater til en app, eller last ned en ny app Slik installerer og fjerner du Mac-programvare: 5 enkle metoderByttet til en Mac og grepet det grunnleggende? Lurer du på hvordan du installerer programvare fra kommandolinjen? Har du gamle Windows-apper som du ganske enkelt må kjøre på Apple-datamaskinen din? Les mer , og den henger hver gang du åpner den. Du åpner Tving utfra Apple-menyen og se applikasjonen vises som Svarer ikke. Enda verre er det at det er en eller annen bakgrunnsprosess som drar systemet ditt ned.
Åpen Aktivitetsmonitor og klikk på prosessen som ikke svarer. Gå deretter til Utsikt meny og velg Send signal til prosess. En meny dukker opp og lar deg velge hvilket signal du vil sende til prosessen, velg signalet ditt og trykk Sende.
Hvis du foretrekker terminalen 4 kule ting du kan gjøre med Mac-terminalenTerminalen er Mac OS X-analog til Windows-ledeteksten, eller CMD. Det er et verktøy, som du sikkert allerede vet, som lar deg kontrollere datamaskinen din ved hjelp av tekstkommandoer, i motsetning til ... Les mer , vil du bruke en kommando du allerede er kjent med. De drepe
kommando brukes til å stoppe en prosess. Hvis du legger til -s
kan du legge til et nummer for å sende et signal til prosessen du dreper. Her er en liste over antall vanlige kommandolister i drepe
mann side:
- 1 - HUP (legg på)
- 2 - INT (avbryt)
- 3 - SLUTT (avslutt)
- 6 - ABRT (abort)
- 9 - KILL (ikke-fangbar, ikke-ignorbar drap)
- 15 - TERM (terminalsignal for programvare)
Det er noen andre signaler du også kan sende, dette er bare de vanligste. Det er en omfattende liste over koder tilgjengelig her.
Når bruker jeg dem?
Nå som du vet hva du skal gjøre med POSIX-signalene, kan du bruke dem til å stoppe hung-prosessene dine rent. For å være rettferdig, skal du ikke bruke disse kodene hver dag. Når du jobber med en utvikler på et merkelig app-krasj, eller hjelper sysadmin-beta-testen til bedriftens interne apper, kan disse kodene hjelpe deg med å få den informasjonen de trenger.
Hvis appen er kodet for å lage disse dumpene, skal du finne dem i katalogen /cores
gjør dette til en enkel katalog å se på når du får data for et program som krasjer eller henges opp. Du kan sjekke her og se hva dumper er i katalogen ved å bruke ls -a
kommando. Dette vil vise deg alle filene i den katalogen, og deretter kan du kopiere dem til en mer tilgjengelig katalogmusikk kommandoen mv filnavn destinasjon
.
I Terminal bruke kommando cd / kjerner
for å bytte til katalogen, og deretter ls -a
for å liste innholdet. For å flytte en fil til mappen Dokumenter bruker du bare mv filnavn / Brukere / brukernavn / Dokumenter
(erstatte filnavn og brukernavn).
Hvis du er en langvarig Unix-bruker som flyttet til Mac, hvilke andre lite kjente funksjoner er det der? Hvis du er interessert i å sjekke ut et prosjekt som bare bruker åpen kildegrunnlag for macOS, sjekk ut PureDarwin. La oss få vite hvordan det fungerte i kommentarene. Vi vil også høre når POSIX-signaler løste et hardnakket problem med din Mac.
Har du brukt POSIX-signaler for feilsøking før?
Bildetillegg: Dean Drobot / Shutterstock
Michael brukte ikke en Mac da de ble dømt, men han kan kode i Applescript. Han har grader innen informatikk og engelsk; han har skrevet om Mac, iOS og videospill i en stund nå; og han har vært IT-ape på dagtid i over et tiår, og har spesialisert seg på skripting og virtualisering.