Fehlerbehebung bei Mac Apps auf die altmodische Art mit POSIX-Signalen

POSIX-Signale sind ein Ergebnis der Unix-Foundation im Herzen von macOS, aber warum sind sie da und wie können Sie sie noch nutzen?

POSIX-Signale sind ein Ergebnis der Unix-Foundation im Herzen von macOS, aber warum sind sie da und wie können Sie sie noch nutzen?
Werbung

Im Aktivitätsmonitor gibt es eine kryptische Menüoption zum Senden eines Signals an den Prozess . Haben Sie sich jemals gefragt, was es war? Wenn Sie es auswählen, werden Sie obskure Begriffe wie SIGINT und SIGHUP sehen, die die Dinge nicht genau aufklären . Was genau sind diese Signale?

Diese Signale sind ein Ergebnis der Unix-Grundlage 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 Oberfläche verwendet. Als Linux-Autor ist es meine Pflicht, Vergleiche zwischen Linux-Distributionen, aber auch gegen die Konkurrenz anzustellen. Lesen Sie mehr im Herzen von macOS. Im Terminal sind einige dieser Signale eingebaut: Wenn Sie Strg + C drücken, um einen laufenden Befehl zu stoppen, senden Sie den Prozess SIGINT, um den aktuell laufenden Befehl zu unterbrechen und zu stoppen. Sie waren eine der ersten Möglichkeiten, wie Apps miteinander kommunizieren konnten und sind Teil der alten POSIX-Standards ("Portable Operating System Interface").

Während es schön ist, die Grundlagen der Funktionsweise Ihres Systems zu verstehen, können Sie diese Signale auch verwenden, um Informationen über sich schlecht benehmende Apps zu erfassen.

Was ist POSIX?

POSIX ist der Standard für Unix- und Unix-ähnliche Betriebssysteme. Zu diesen kompatiblen Systemen gehört macOS, das als Unix-kompatibel angesehen wurde. Im Kern ist Darwin ein Unix-Kern mit Wurzeln, die auf NeXTSTEP zurückgehen. Das war eine Abzweigung von BSD, einer der ursprünglichen Unix-Varianten.

POSIX stellt sicher, dass alle diese Betriebssysteme Code in erwarteter Weise verarbeiten, sodass Entwickler wissen, dass ihr Code wirklich portabel ist. Wenn sie eines dieser Signale auf einer anderen Maschine an einen Prozess senden, sind die zurückgesendeten Daten in einem Format, das sie antizipieren und verarbeiten können. Dies ist eine grobe Vereinfachung von etwa 40 Jahren Computergeschichte, aber Sie erhalten die allgemeine Idee.

Bei der Kommunikation mit den grundlegendsten Daemons, die die Unix-Basis von macOS ausmachen, sind diese Signale die besten. Daemons sind die Hintergrundprozesse, die das Wesentliche an Ihrem Computer ausführen - oder in üblichen macOS-Sprachdiensten. Die berüchtigte Entdeckung ist ein Beispiel. Dies war der OS X Yosemite 10.10 Ersatz für mDNSResponder, ein weiterer Dienst für die Netzwerkprobleme in diesem Update verantwortlich gemacht.

Befehlszeile
Bildquelle: Dominik Rusiecki über Freeimages

Je nachdem, wie eine App Signale empfängt, können Sie ein Signal zum Beenden einer App senden, um einen so genannten Core-Dump zu erstellen. Core Dumps enthalten alle aktuellen Daten eines laufenden Programms. Diese sind wichtig für die Fehlerbehebung von 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 machen, aber wenn Sie durch ein App-Problem frustriert sind, können sie hilfreich sein, um sie an einen Entwickler zu senden.

Es gibt noch ein kleines bisschen klassischen Computing, das hier seine Wurzeln hat. Das Mach-O-Dateiformat teilt seinen Namen mit dem Mach-Mikrokernel. Zusammen mit BSD ist dies ein Teil der Wurzeln von macOS, und beide sind Teil des grundlegenden Kernels, XNU. Mach ist nicht so legendär wie BSD, deshalb bekommt es nicht viel von der Presse, ist aber Teil dessen, was Apples Betriebssystem von anderen Unix-Varianten unterscheidet.

Also, wie kann ich sie benutzen?

Wir waren alle schon einmal dort: Sie erhalten ein Update für eine App oder laden Sie eine neue App herunter. So installieren und entfernen Sie Mac-Software: 5 einfache Methoden So installieren und entfernen Sie Mac-Software: 5 einfache Methoden auf einen Mac umgestellt Griffe mit den Grundlagen? Fragen Sie sich, wie Sie Software über die Befehlszeile installieren können? Hast du alte Windows Apps, die du einfach auf deinem Apple Computer ausführen musst? Lesen Sie mehr, und es hängt jedes Mal, wenn Sie es öffnen. Sie öffnen Force Quit aus dem Apple-Menü und sehen, dass die Anwendung als nicht reagiert angezeigt wird . Schlimmer noch, es ist ein Hintergrundprozess, der Ihr System herunterzieht.

Aktivitätsmonitor

Öffnen Sie den Aktivitätsmonitor und klicken Sie auf den Prozess, der nicht reagiert. Gehen Sie dann in das Menü Ansicht und wählen Sie Signal zum Verarbeiten senden . Es erscheint ein Menü, 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 Coole Dinge, die Sie mit dem Mac-Terminal erledigen können 4 Coole Dinge, die Sie mit dem Mac-Terminal erledigen können Das Terminal ist das Mac OS X-Analog der Windows-Eingabeaufforderung oder CMD. Es ist ein Tool, wie Sie wahrscheinlich bereits wissen, dass Sie Ihren Computer mit Textbefehlen steuern können, im Gegensatz zu ... Lesen Sie mehr, verwenden Sie einen Befehl, den Sie bereits vertraut sind. Der Befehl kill wird verwendet, um einen Prozess zu stoppen. Wenn Sie -s hinzufügen, können Sie eine Zahl hinzufügen, um ein Signal an den Prozess zu senden, den Sie töten. Hier ist eine Liste der Anzahl der gebräuchlichen Befehle auf der kill Man-Seite:

  • 1 - HUP (auflegen)
  • 2 - INT (Unterbrechung)
  • 3 - BEENDEN (beenden)
  • 6 - ABRT (Abbruch)
  • 9 - KILL (nicht abfangbar, nicht ignorierbar töten)
  • 15 - TERM (Software-Beendigungssignal)

Es gibt einige andere Signale, die Sie auch senden können, dies sind nur die häufigsten. Es gibt eine umfassende Liste von Codes, die hier verfügbar sind.

Wann benutze ich sie?

Jetzt, wo Sie wissen, was Sie mit den POSIX-Signalen machen müssen, können Sie sie verwenden, um Ihre abgehängten Prozesse sauber zu stoppen. Um fair zu sein, werden Sie diese Codes nicht jeden Tag verwenden. Wenn Sie mit einem Entwickler an einem ungewöhnlichen App-Absturz arbeiten oder Ihrem Systemadministrator beim Testen der firmeninternen Apps Ihres Unternehmens helfen, können diese Codes helfen, die benötigten Informationen zu erhalten.

Wenn die App zum Erstellen dieser Dumps codiert ist, werden Sie sie im Verzeichnis /cores in den /cores Dies ist ein einfaches Verzeichnis, in das Sie beim Abrufen von Daten für eine abstürzende oder blockierte Anwendung schauen können. Sie können hier nachsehen, welche Dumps sich im Verzeichnis befinden, indem Sie den Befehl ls -a . Dadurch werden Ihnen alle Dateien in diesem Verzeichnis angezeigt, die Sie dann in ein besser zugängliches Verzeichnis mit dem Befehl mv filename destination kopieren können.

Verwenden Sie in Terminal den command cd /cores, um zu dem Verzeichnis zu wechseln, und ls -a um den Inhalt aufzulisten. Um eine Datei in Ihren Documents-Ordner zu verschieben, verwenden Sie einfach mv filename /Users/username/Documents (ersetzt Dateinamen und Benutzernamen ).

mackeyboard
Bildquelle: Erika Varga über Freeimages

Wenn Sie ein langjähriger Unix-Benutzer sind, der auf den Mac gewechselt ist, welche anderen wenig bekannten Funktionen gibt es da draußen? Wenn Sie sich für ein Projekt interessieren, das nur die Open-Source-Basis von macOS verwendet, sehen Sie sich PureDarwin an. Lassen Sie uns wissen, wie das in den Kommentaren funktioniert hat. Wir würden auch gerne hören, wenn POSIX-Signale ein hartnäckiges Problem mit Ihrem Mac gelöst haben.

Haben Sie vorher POSIX-Signale zur Fehlerbehebung verwendet?

Bildnachweis: Dean Drobot / Shutterstock

In this article