Depanarea aplicațiilor Mac a modului vechi cu semnale POSIX
În Monitorul de activitate există o opțiune de meniu criptică Trimiteți semnalul de procesat. Te-ai intrebat vreodata ce a fost? Dacă îl selectați, veți vedea termeni obscur cum ar fi SIGINT și SIGHUP, care nu clarifică exact lucrurile. Deci, ce anume sunt aceste semnale?
Aceste semnale sunt rezultatul fundației Unix Mac OS X Yosemite, din perspectiva unui utilizator Linux Mac OS X Yosemite, din perspectiva unui utilizator Linux Mac OS X este folosit ca un poster pentru o interfață curată și elegantă. Ca scriitor Linux, este datoria mea să fac comparații între distribuțiile Linux, dar și împotriva concurenței. Citiți mai multe în inima MacOS. Terminalul are unele semnale încorporate: când ați lovit Ctrl + C pentru a opri o comandă care rulează, trimiteți procesul SIGINT pentru a întrerupe și a opri comanda curentă. Acestea au fost unul dintre primele moduri în care aplicațiile ar putea comunica între ele și fac parte din vechile “Interfață pentru sistemul de operare portabil” (POSIX).
Deși este bine să înțelegeți elementele de bază ale funcționării sistemului dvs., puteți utiliza și aceste semnale pentru a capta informații despre aplicațiile necorespunzătoare.
Ce este POSIX?
POSIX este standardul de bază pentru sistemele de operare Unix și Unix. Printre aceste sisteme compatibile este macOS, care a fost făcut compatibil cu Unix. La baza lui este Darwin, un nucleu Unix cu rădăcini care datează din nou la NeXTSTEP. Aceasta însăși a fost o furculiță a BSD, una dintre versiunile originale Unix.
POSIX asigură că toate aceste sisteme de operare se ocupă de cod în moduri așteptate, permițând dezvoltatorilor să știe că codul lor este cu adevărat portabil. Când trimit unul din aceste semnale pe o altă mașină unui proces, datele pe care le primesc sunt într-un format pe care îl pot anticipa și procesa. Aceasta este o simplă simplificare de aproximativ 40 de ani de istorie a calculatoarelor, dar obțineți ideea generală.
Când comunicați cu cei mai de bază daemoni care alcătuiesc baza Unix a macOS, aceste semnale sunt cele mai bune. Daemoanele sunt procesele de fundal care rulează cele mai importante lucruri ale computerului dvs. - sau în cadrul serviciilor comune de tip macOS. Infamul discoveryd este un exemplu. Acesta a fost înlocuirea OS X Yosemite 10.10 mDNSResponder, un alt serviciu blamat pentru problemele de rețea din acea actualizare.
În funcție de modul în care o aplicație este proiectată să primească semnale, puteți trimite un semnal pentru a părăsi o aplicație pentru a crea ceea ce se numește dump de bază. Gropile de bază conțin toate datele actuale despre un program în desfășurare. Acestea sunt esențiale pentru depanarea aplicațiilor care se blochează în mod constant. Pe Mac, aceste dump-uri în formatul de fișier Mach-O, pe care le puteți citi în mediul de dezvoltare macOS numit Xcode. Majoritatea utilizatorilor probabil că nu vor face prea multe cu acestea, dar dacă sunteți frustrat de o problemă cu aplicația, acestea pot fi utile pentru a trimite un dezvoltator pentru asistență.
Există încă un pic de computere clasice care își prezintă rădăcinile aici. Formatul de fișier Mach-O își împarte numele cu microkernelul Mach. Împreună cu BSD, aceasta face parte din rădăcinile macOS, iar cele două fac parte din kernelul fundamental, XNU. Mach nu este la fel de proastă ca BSD, așa că nu obține o mulțime de presă, ci face parte din ceea ce a stabilit sistemul de operare al Apple în afară de alte variante Unix.
Deci, cum pot să le folosesc?
Noi am fost toți acolo înainte: veți obține o actualizare a unei aplicații sau puteți descărca o nouă aplicație Cum se instalează și elimină software-ul Mac: 5 metode ușoare Cum se instalează și elimină software-ul Mac: 5 metode ușoare Comutat pe un Mac și ajungând la se potrivește cu elementele de bază? Vă întrebați cum să instalați software din linia de comandă? Aveți vechi aplicații Windows pe care pur și simplu trebuie să le executați pe computerul Apple? Citește mai mult și se blochează de fiecare dată când o deschizi. Tu deschizi Forțați-vă din meniul Apple și vedeți că aplicația apare ca Nu raspunde. Mai rău, este un proces de fundal prin care sistemul tău să fie în jos.
Deschis Monitorizarea activității și faceți clic pe procesul care nu răspunde. Apoi du-te la Vedere meniu și selectați Trimiteți semnalul pentru procesare. Se va afișa un meniu și vă va permite să alegeți semnalul care trebuie trimis către proces selectați semnalul și apăsați Trimite.
Dacă preferați Terminalul 4 Lucruri Cool pe care le puteți face cu terminalul Mac 4 Lucruri răcoroase pe care le puteți face cu Terminalul Mac Terminalul este analogul Mac OS X al liniei de comandă Windows sau CMD. Este un instrument, după cum probabil știți deja, care vă permite să controlați computerul folosind comenzi de text, spre deosebire de ... Read More, veți folosi o comandă cu care sunteți deja familiarizați. ucide
comanda este folosită pentru a opri un proces. Dacă adăugați -s
puteți adăuga un număr pentru a trimite un semnal procesului pe care îl omorâți. Iată o listă cu numărul de comenzi comune listă în ucide
pagina man:
- 1 - HUP (închideți)
- 2 - INT (întrerupere)
- 3 - QUIT (quit)
- 6 - ABRT (abort)
- 9 - ucide (ucidere care nu poate fi surprinsă,
- 15 - TERM (semnal de terminare a software-ului)
Există și alte semnale pe care le puteți trimite, acestea fiind doar cele mai frecvente. Există o listă cuprinzătoare de coduri disponibile aici.
Când le folosesc?
Acum că știți ce să faceți cu semnalele POSIX, puteți să le utilizați pentru a opri curățarea proceselor. Pentru a fi corect, nu veți folosi aceste coduri în fiecare zi. Atunci când lucrați cu un dezvoltator la un accident de aplicație ciudat sau dacă ajutați testul beta sysadmin la aplicațiile interne ale companiei, aceste coduri vă pot ajuta să obțineți informațiile de care au nevoie.
Dacă aplicația este codificată pentru a crea aceste gropi, le veți găsi în director / miezuri
făcând acest lucru un director ușor de a uita la obținerea de date pentru o cerere crashing sau spânzurat. Puteți verifica aici și puteți vedea ce depozite se află în director folosind Este-a
comanda. Acest lucru vă va arăta toate fișierele din directorul respectiv, pe care le puteți apoi copiați la o comandă mai accesibilă mv destinație nume fișier
.
În Terminal folosește comanda cd / core
pentru a comuta la director, atunci Este-a
pentru a afișa conținutul. Pentru a muta un fișier în dosarul Documente, pur și simplu utilizați Nume fișier mv / Utilizatori / nume utilizator / Documente
(înlocuind nume de fișier și nume de utilizator).
Dacă sunteți un utilizator Unix de lungă durată care sa mutat pe Mac, ce alte caracteristici puțin cunoscute sunt acolo? Dacă sunteți interesat să verificați un proiect care utilizează doar fundația open source a macOS, verificați PureDarwin. Spuneți-ne cum s-a făcut acest lucru în comentariile. De asemenea, am dori să auzim când semnalele POSIX au rezolvat o problemă încăpățânată cu calculatorul dvs. Mac.
Ați folosit semnale POSIX pentru remedierea problemelor înainte?
Credite de imagine: Dean Drobot / Shutterstock
Explorați mai multe despre: Command Prompt, MacOS Sierra, Terminal, Unix.