Advertentie
In Activity Monitor is er een cryptische menuoptie Signaal verzenden naar proces. Heb je je ooit afgevraagd wat het was? Als je het selecteert, zie je obscure termen zoals SIGINT en SIGHUP, wat de zaken niet helemaal duidelijk maakt. Dus wat zijn deze signalen precies?
Die signalen zijn het resultaat van de Unix foundation Mac OS X Yosemite, vanuit het perspectief van een Linux-gebruikerMac OS X wordt gebruikt als poster voor een strakke en elegante interface. Als Linux-schrijver is het mijn plicht om vergelijkingen te maken tussen Linux-distributies, maar ook tegen de concurrentie. Lees verder in het hart van macOS. Terminal heeft een aantal van deze signalen ingebouwd: wanneer je slaat Ctrl + C om een lopend commando te stoppen, verstuurt 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 maken deel uit van de oude "Portable Operating System Interface" (POSIX) -standaarden.
Hoewel het leuk is om de basisprincipes van hoe uw systeem werkt te begrijpen, kunt u deze signalen ook gebruiken om informatie vast te leggen over apps die zich misdragen.
Wat is POSIX?
POSIX is de basisstandaard voor Unix- en Unix-achtige besturingssystemen. Een van deze compatibele systemen is macOS, dat is gemaakt om Unix-compatibel te zijn. De kern is Darwin, een Unix-kern met wortels die teruggaan tot NeXTSTEP. Dat zelf was een vork van BSD, een van de originele Unix-varianten.
POSIX zorgt ervoor dat al deze besturingssystemen op de verwachte manier met code omgaan, zodat ontwikkelaars 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 terugkrijgen een indeling die ze kunnen anticiperen en verwerken. Dit is een grove vereenvoudiging van ongeveer 40 jaar computergeschiedenis, maar je krijgt het algemene idee.
Bij communicatie met de meest elementaire daemons die de Unix-basis van macOS vormen, zijn deze signalen het beste. Daemons zijn de achtergrondprocessen die de essentie van uw computer uitvoeren - of gemeen hebben macOS spraakgebruik, diensten. De beruchte ontdekken is een voorbeeld. Dit was de OS X Yosemite 10.10-vervanging voor mDNSResponder, een andere dienst kreeg de schuld van de netwerkproblemen in die update.
Afhankelijk van de manier waarop een app is ontworpen om signalen te ontvangen, kun je een signaal verzenden om een app af te sluiten om een zogeheten core dump te maken. Kerndumps bevatten alle huidige gegevens over een lopend programma. Deze zijn essentieel voor het oplossen van problemen met apps die constant crashen. Op de Mac worden deze gedumpt in het Mach-O-bestandsformaat, dat je kunt lezen in de macOS-ontwikkelomgeving genaamd Xcode. De meeste gebruikers zullen hier waarschijnlijk niet veel mee doen, maar als je gefrustreerd bent door een app-probleem, kunnen ze nuttig zijn om voor ondersteuning naar een ontwikkelaar te sturen.
Er is nog een klein beetje klassiek computergebruik dat hier zijn wortels laat zien. Het Mach-O-bestandsformaat deelt zijn naam met de Mach microkernel. Samen met BSD maakt dit deel uit van de wortels van macOS en de twee maken deel uit van de basiskern, XNU. Mach is niet zo legendarisch als BSD, dus het krijgt niet veel 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 eerder geweest: je krijgt een update naar een app of download een nieuwe app Mac-software installeren en verwijderen: 5 eenvoudige methodenOvergestapt op een Mac en de basis onder de knie krijgen? Vraagt u zich af hoe u software installeert vanaf de opdrachtregel? Heb je oude Windows-apps die je gewoon op je Apple-computer moet uitvoeren? Lees verder , en het blijft hangen elke keer dat u het opent. U opent Geforceerd beëindigenin het Apple-menu en zie dat de applicatie 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 Visie menu en selecteer Zend signaal om te verwerken. Er verschijnt een menu waarin u kunt kiezen welk signaal u naar het proces wilt verzenden, uw signaal selecteert en op drukt Sturen.
Als u de Terminal verkiest 4 coole dingen die je kunt doen met de Mac TerminalDe Terminal is de Mac OS X-analoog van de Windows-opdrachtprompt of CMD. Het is, zoals u waarschijnlijk al weet, een hulpmiddel waarmee u uw computer kunt bedienen met tekstopdrachten, in tegenstelling tot ... Lees verder , gebruik je een commando dat je al kent. De doden
commando wordt gebruikt om een proces te stoppen. Als je toevoegt -s
je kunt een nummer toevoegen om een signaal af te geven aan het proces dat je aan het doden bent. Hier is een lijst met het aantal algemene opdrachten in de lijst doden
man pagina:
- 1 - HUP (ophangen)
- 2 - INT (onderbreken)
- 3 - STOP (stop)
- 6 - ABRT (afbreken)
- 9 - KILL (niet te vangen, niet te negeren kill)
- 15 - TERM (software-beëindigingssignaal)
Er zijn ook enkele andere signalen die u kunt verzenden, dit zijn slechts de meest voorkomende. Er is een uitgebreide lijst van codes hier beschikbaar.
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, ga je deze codes niet elke dag gebruiken. Wanneer u met een ontwikkelaar werkt aan een vreemde app-crash of als u uw sysadmin-bèta helpt bij het testen van de interne apps van uw bedrijf, kunnen deze codes helpen om de informatie te krijgen die ze nodig hebben.
Als de app is gecodeerd om deze stortplaatsen te maken, zul je ze in de map vinden /cores
waardoor dit een gemakkelijke directory is om naar te kijken bij het ophalen van gegevens voor een crashende of vastgelopen applicatie. U kunt hier controleren en zien welke stortplaatsen zich in de map bevinden met behulp van de ls -a
commando. Dit toont u alle bestanden in die map, u kunt ze vervolgens kopiëren naar een meer toegankelijke map met de opdracht mv bestandsnaam bestemming
.
In Terminal gebruik de commando cd / cores
om naar de directory over te schakelen ls -a
om de inhoud weer te geven. Gebruik gewoon om een bestand naar uw map Documenten te verplaatsen mv bestandsnaam / Gebruikers / gebruikersnaam / Documenten
(vervangen bestandsnaam en gebruikersnaam).
Als je al lang Unix-gebruiker bent en naar de Mac bent verhuisd, welke andere weinig bekende functies zijn er dan? Als u geïnteresseerd bent in het uitchecken van een project dat alleen de open source foundation van macOS bekijk PureDarwin. Laat ons weten hoe dat in de reacties is gelukt. We willen ook graag horen wanneer POSIX-signalen een hardnekkig probleem met je Mac hebben opgelost.
Heb je eerder POSIX-signalen gebruikt voor het oplossen van problemen?
Afbeeldingscredits: Dean Drobot / Shutterstock
Michael gebruikte geen Mac toen ze verdoemd waren, maar hij kan in Applescript coderen. Hij heeft diploma's in informatica en Engels; hij schrijft al een tijdje over Mac, iOS en videogames; en hij is al meer dan een decennium een IT-aap overdag, gespecialiseerd in scripting en virtualisatie.