Problemen met Mac Apps op de ouderwetse manier oplossen met POSIX-signalen

Problemen met Mac Apps op de ouderwetse manier oplossen met POSIX-signalen / Mac

In Activity Monitor is er een cryptische menuoptie Stuur signaal naar proces. Heb je je ooit afgevraagd wat het was? Als je het selecteert, zie je onduidelijke termen zoals SIGINT en SIGHUP, wat niet meteen duidelijk maakt. Dus wat zijn deze signalen precies??

Die signalen zijn het resultaat van de Unix-stichting Mac OS X Yosemite, vanuit het perspectief van een Linux-gebruiker Mac OS X Yosemite, vanuit het perspectief van een Linux-gebruiker Mac OS X wordt gebruikt als het kind van de poster voor een schone en elegante interface. Als een Linux-schrijver is het mijn taak om vergelijkingen te maken tussen Linux-distributies, maar ook tegen de concurrentie. Lees meer in het hart van macOS. Terminal heeft enkele van deze signalen ingebouwd: wanneer je raakt Ctrl + C om een ​​lopende opdracht te stoppen, verzendt u het proces SIGINT om de momenteel lopende opdracht te onderbreken en te stoppen. Ze waren een van de eerste manieren waarop apps met elkaar konden communiceren en deel uitmaken van het oude “Draagbaar besturingssysteem Interface” (POSIX) normen.

Hoewel het leuk is om de basisprincipes van hoe uw systeem werkt te begrijpen, kunt u deze signalen ook gebruiken om informatie over verkeerd werkende apps vast te leggen.

Wat is POSIX?

POSIX is de basisnorm voor Unix- en Unix-achtige besturingssystemen. Een van deze compatibele systemen is macOS, dat Unix-compatibel is gemaakt. In de kern zit Darwin, een Unix-kern met wortels die dateren uit NeXTSTEP. Dat was zelf een vork van BSD, een van de originele Unix-varianten.

POSIX zorgt ervoor dat al deze besturingssystemen code op de verwachte manier verwerken, waardoor ontwikkelaars kunnen weten dat hun code echt draagbaar is. Wanneer ze een van deze signalen op een andere machine naar een proces sturen, hebben de gegevens die ze ontvangen een formaat dat ze kunnen anticiperen en verwerken. Dit is een grove vereenvoudiging van ongeveer 40 jaar computergeschiedenis, maar je krijgt het algemene idee.

Wanneer je communiceert met de meest basale daemons die de basis Unix van macOS vormen, zijn deze signalen de beste. Daemons zijn de achtergrondprocessen die de essentie van uw computer uitvoeren - of in algemene MacOS-spraakgebruiksdiensten. De beruchte discoveryd is een voorbeeld. Dit was de OS X Yosemite 10.10 vervanging voor mDNSResponder, een andere service de schuld voor de netwerkproblemen in die update.

Afbeelding tegoed: Dominik Rusiecki via Freeimages

Afhankelijk van de manier waarop een app is ontworpen om signalen te ontvangen, kunt u een signaal verzenden om een ​​app te sluiten om zo een kerndump te maken. Core dumps bevatten alle actuele gegevens over een lopend programma. Deze zijn essentieel voor het oplossen van problemen met apps die voortdurend crashen. Op de Mac worden deze gedumpt in het Mach-O-bestandsformaat, dat u kunt lezen in de ontwikkelomgeving van macOS, genaamd Xcode. De meeste gebruikers zullen hier waarschijnlijk niet veel aan doen, maar als je gefrustreerd bent door een app-probleem, kunnen ze handig zijn om naar een ontwikkelaar te sturen voor ondersteuning.

Er is nog een klein beetje klassiek computergebruik dat zijn wortels hier laat zien. Het Mach-O bestandsformaat deelt zijn naam met de Mach microkernel. Samen met BSD maakt dit deel uit van de roots van macOS, en de twee maken deel uit van de fundamentele kernel, XNU. Mach is niet zo legendarisch als BSD, dus het krijgt niet veel van de pers, maar maakt deel uit van wat het besturingssysteem van Apple onderscheidt van andere Unix-varianten.

Dus hoe kan ik ze gebruiken?

We zijn er allemaal al eerder geweest: u krijgt een update van een app of download een nieuwe app Mac-software installeren en verwijderen: 5 eenvoudige methoden Mac-software installeren en verwijderen: 5 eenvoudige methoden op een Mac overgeschakeld grepen met de basis? Vraagt ​​u zich af hoe u software vanaf de opdrachtregel kunt installeren? Heb je oude Windows-apps die je gewoon op je Apple-computer moet uitvoeren? Meer lezen en het blijft hangen elke keer dat u het opent. U opent Geforceerd beëindigen uit het Apple-menu en zie de toepassing wordt weergegeven als Reageert niet. Erger nog, het is een achtergrondproces dat je systeem naar beneden sleept.

Open Activiteitenmonitor en klik op het proces dat niet reageert. Ga dan naar de Uitzicht menu en selecteer Stuur signaal om te verwerken. Er verschijnt een menu en u kunt kiezen welk signaal naar het proces moet worden gestuurd om uw signaal te selecteren en op te drukken Sturen.

Als u de voorkeur geeft aan de coole dingen die u met de Terminal 4 kunt doen 4 Leuke dingen die u kunt doen met de Mac Terminal De Terminal is de Mac OS X-analoog van de Windows-opdrachtprompt of CMD. Het is een tool, zoals je waarschijnlijk al weet, die je in staat stelt om je computer te besturen met behulp van tekstcommando's, in tegenstelling ... Lees Meer, je zult een commando gebruiken dat je al bekend bent. De doden commando wordt gebruikt om een ​​proces te stoppen. Als je toevoegt -s je kunt een nummer toevoegen om een ​​signaal te sturen naar het proces dat je aan het doden bent. Hier is een lijst met het aantal veelgebruikte opdrachten in de lijst doden man pagina:

  • 1 - HUP (ophangen)
  • 2 - INT (onderbreken)
  • 3 - STOP (stop)
  • 6 - ABRT (abort)
  • 9 - KILL (niet-catchable, niet-ignorable kill)
  • 15 - TERM (software-terminatiesignaal)

Er zijn ook enkele andere signalen die u kunt verzenden, deze zijn slechts de meest voorkomende. Er is een uitgebreide lijst met codes beschikbaar hier.

Wanneer gebruik ik ze?

Nu u weet wat u met de POSIX-signalen moet doen, kunt u ze gebruiken om uw opgehangen processen netjes te stoppen. Om eerlijk te zijn, je gaat deze codes niet elke dag gebruiken. Wanneer u met een ontwikkelaar aan een vreemde app-crash werkt, of uw sysadmin bètatest voor de interne apps van uw bedrijf helpt, kunnen deze codes helpen bij het verkrijgen van de informatie die ze nodig hebben.

Als de app is gecodeerd om deze dumps aan te maken, ga je ze zoeken in de directory / cores waardoor dit een gemakkelijke map is om naar te kijken wanneer u gegevens ophaalt voor een crashende of opgehangen applicatie. Je kunt hier kijken en zien welke dumps in de map staan ​​met behulp van de ls -a commando. Dit toont u alle bestanden in die map die u vervolgens kunt kopiëren naar een meer toegankelijke map, muziek de opdracht mv bestandsnaam bestemming.

In Terminal gebruik de stuur cd / cores aan om naar de map te gaan en vervolgens ls -a om de inhoud te vermelden. Om een ​​bestand naar uw map Documenten te verplaatsen, gebruikt u eenvoudigweg mv bestandsnaam / Gebruikers / gebruikersnaam / Documenten (ter vervanging van bestandsnaam en gebruikersnaam).

Afbeelding: Erika Varga via Freeimages

Als je een oude Unix-gebruiker bent die naar de Mac is verhuisd, welke andere weinig bekende functies zijn er dan? Als je geïnteresseerd bent in het uitchecken van een project dat alleen de open source-basis gebruikt van macOS, check dan PureDarwin. Laat ons weten hoe dat in de commentaren is uitgewerkt. We willen ook graag horen wanneer POSIX-signalen een hardnekkig probleem met je Mac oplossen.

Heeft u eerder POSIX-signalen gebruikt voor het oplossen van problemen??

Afbeeldingscredits: Dean Drobot / Shutterstock

Ontdek meer over: Command Prompt, macOS Sierra, Terminal, Unix.