Beheben Sie Mac-Apps auf altmodische Weise mit POSIX-Signalen

Beheben Sie Mac-Apps auf altmodische Weise mit POSIX-Signalen / Mac

Im Aktivitätsmonitor gibt es eine kryptische Menüoption Signal an Prozess senden. Haben Sie sich jemals gefragt, was es war? Wenn Sie es auswählen, werden obskure Begriffe wie angezeigt SIGINT und SEUFZEND, was nicht genau die Dinge klärt. Also, was genau sind diese Signale?

Diese Signale sind ein Ergebnis der Unix-Stiftung Mac OS X Yosemite, Aus der Perspektive eines Linux-Benutzers Mac OS X Yosemite, Aus der Perspektive eines Linux-Benutzers Mac OS X wird als Aushängeschild für eine saubere und elegante Benutzeroberfläche verwendet. Als Linux-Writer ist es meine Pflicht, Vergleiche zwischen Linux-Distributionen, aber auch gegen die Konkurrenz anzustellen. Lesen Sie mehr im Herzen von macOS. In das Terminal sind einige dieser Signale eingebaut: Wenn Sie einen Treffer treffen Strg + C Um einen laufenden Befehl zu stoppen, senden Sie den Prozess SIGINT um den gerade laufenden Befehl zu unterbrechen und zu stoppen. Sie waren eine der ersten Möglichkeiten, mit denen Apps miteinander kommunizieren konnten und Teil des Alten sind “Portable Betriebssystem-Schnittstelle” (POSIX) -Standards.

Es ist zwar schön, die Grundlagen der Funktionsweise Ihres Systems zu verstehen, Sie können diese Signale jedoch auch dazu verwenden, Informationen über fehlerhafte Apps zu erfassen.

Was ist POSIX??

POSIX ist der Basisstandard für Unix- und Unix-Like-Betriebssysteme. Zu diesen kompatiblen Systemen gehört macOS, das Unix-kompatibel ist. Im Mittelpunkt steht Darwin, ein Unix-Kern, dessen Wurzeln auf NeXTSTEP zurückgehen. Das war selbst eine Abspaltung von BSD, einer der ursprünglichen Unix-Varianten.

POSIX stellt sicher, dass alle diese Betriebssysteme mit Code auf erwartete Weise umgehen, sodass Entwickler wissen, dass ihr Code wirklich portabel ist. Wenn sie eines dieser Signale auf einem anderen Computer an einen Prozess senden, haben die zurückgegebenen Daten ein Format, das sie vorhersehen und verarbeiten können. Dies ist eine grobe Vereinfachung von etwa 40 Jahren Computergeschichte, aber Sie haben die allgemeine Vorstellung.

Bei der Kommunikation mit den grundlegendsten Daemons, die die Unix-Basis von macOS bilden, sind diese Signale die besten. Daemons sind die Hintergrundprozesse, auf denen das Wesentliche Ihres Computers ausgeführt wird - oder im Allgemeinen macOS-Sprachdienstleistungen. Das berüchtigte entdecken ist ein Beispiel. Dies war der OS X Yosemite 10.10-Ersatz für mDNSResponder, Ein anderer Dienst wurde für die Netzwerkprobleme in diesem Update verantwortlich gemacht.

Bildnachweis: Dominik Rusiecki über Freeimages

Je nachdem, wie eine App Signale empfängt, können Sie ein Signal zum Beenden einer App senden, um einen sogenannten Core Dump zu erstellen. Core Dumps enthalten alle aktuellen Daten zu einem laufenden Programm. Dies ist wichtig für die Fehlerbehebung bei Apps, die ständig abstürzen. Auf dem Mac werden diese im Mach-O-Dateiformat abgelegt, das Sie in der MacOS-Entwicklungsumgebung namens Xcode lesen können. Die meisten Benutzer werden wahrscheinlich nicht viel damit anfangen, aber wenn Sie von einem App-Problem frustriert sind, können sie hilfreich sein, um sie an einen Entwickler zu senden.

Hier gibt es noch ein bisschen klassisches Computing, das seine Wurzeln zeigt. Das Mach-O-Dateiformat teilt seinen Namen mit dem Mach-Mikrokernel. Zusammen mit BSD gehört dies zu den Wurzeln von macOS, und beide gehören zum Gründungskern XNU. Mach ist nicht so beliebt wie BSD, daher bekommt es nicht viel Presse, ist aber Teil des Betriebssystems von Apple, das sich von anderen Unix-Varianten unterscheidet.

Wie kann ich sie verwenden??

Wir waren alle schon einmal dort: Sie erhalten ein Update für eine App oder laden eine neue App herunter. So installieren und entfernen Sie Mac-Software: 5 einfache Methoden So installieren und entfernen Sie Mac-Software: 5 einfache Methoden Wechseln zu einem Mac und zur nächsten Seite greift die Grundlagen? Sie fragen sich, wie Sie Software von der Befehlszeile aus installieren können? Haben Sie alte Windows-Apps, die Sie einfach auf Ihrem Apple-Computer ausführen müssen? Lesen Sie mehr, und es hängt jedes Mal, wenn Sie es öffnen. Du öffnest Beenden erzwingen aus dem Apple-Menü und sehen, dass die Anwendung als angezeigt wird Reagiert nicht. Schlimmer noch, es ist ein Hintergrundprozess, der Ihr System nach unten zieht.

Öffnen Aktivitätsmonitor und klicken Sie auf den Prozess, der nicht reagiert. Dann gehe zum Aussicht Menü und wählen Sie Signal zur Verarbeitung senden. Ein Menü wird geöffnet, in dem Sie auswählen können, welches Signal an den Prozess gesendet werden soll. Wählen Sie Ihr Signal und drücken Sie Senden.

Wenn Sie das Terminal 4 vorziehen, können Sie mit dem Mac Terminal 4 coole Dinge erledigen. Mit dem Mac Terminal 4 können Sie coole Dinge tun. Das Terminal ist das Mac OS X-Analogon der Windows-Eingabeaufforderung (CMD). Es ist ein Tool, mit dem Sie wahrscheinlich bereits wissen, dass Sie Ihren Computer mit Textbefehlen steuern können. Im Gegensatz dazu werden Sie einen Befehl verwenden, mit dem Sie bereits vertraut sind. Das töten Befehl wird zum Stoppen eines Prozesses verwendet. Wenn Sie hinzufügen -s Sie können eine Nummer hinzufügen, um ein Signal an den Prozess zu senden, den Sie töten. Hier ist eine Liste der Anzahl allgemeiner Befehle in der töten Manpage:

  • 1 - HUP (auflegen)
  • 2 - INT (Interrupt)
  • 3 - BEENDEN (Beenden)
  • 6 - ABRT (Abbruch)
  • 9 - KILL (nicht einfangbarer, nicht zu vernachlässigender Kill)
  • 15 - TERM (Software-Beendigungssignal)

Es gibt einige andere Signale, die Sie auch senden können. Diese sind nur die häufigsten. Hier finden Sie eine umfassende Liste von Codes.

Wann benutze ich sie??

Da Sie nun wissen, was mit den POSIX-Signalen zu tun ist, können Sie sie dazu verwenden, Ihre blockierten Prozesse sauber zu stoppen. Um fair zu sein, werden Sie diese Codes nicht jeden Tag verwenden. Wenn Sie mit einem Entwickler an einem ungeraden App-Absturz arbeiten oder Ihre sysadmin-Beta beim Testen der internen Apps Ihres Unternehmens unterstützen, können diese Codes dazu beitragen, die benötigten Informationen zu erhalten.

Wenn die App für das Erstellen dieser Dumps codiert ist, werden Sie sie im Verzeichnis finden / kerne Dies macht es zu einem einfachen Verzeichnis, auf das Sie zugreifen können, wenn Daten für eine abstürzende oder blockierte Anwendung abgerufen werden. Sie können hier überprüfen, welche Dumps sich im Verzeichnis befinden ls -a Befehl. Daraufhin werden alle Dateien in diesem Verzeichnis angezeigt, und Sie können sie in ein besser zugängliches Verzeichnis kopieren mv Dateiname Ziel.

Im Terminal benutze die Befehl CD / Kerne um in das Verzeichnis zu wechseln, dann ls -a um den Inhalt aufzulisten. Um eine Datei in den Ordner Dokumente zu verschieben, verwenden Sie einfach mv Dateiname / Benutzer / Benutzername / Dokumente (Ersetzen Dateiname und Nutzername).

Bildnachweis: Erika Varga über Freeimages

Wenn Sie ein langjähriger Unix-Benutzer sind, der auf den Mac umgestiegen ist, welche anderen wenig bekannten Funktionen gibt es? Wenn Sie an einem Projekt interessiert sind, das nur die Open Source-Basis von macOS verwendet, besuchen Sie PureDarwin. Lassen Sie uns wissen, wie sich das in den Kommentaren entwickelt hat. Wir möchten auch gerne hören, wenn POSIX-Signale ein hartnäckiges Problem mit Ihrem Mac gelöst haben.

Haben Sie bereits POSIX-Signale zur Fehlerbehebung verwendet?

Bildnachweise: Dean Drobot / Shutterstock

Erfahren Sie mehr über: Eingabeaufforderung, macOS Sierra, Terminal, Unix.