Dépannez les applications Mac à l'ancienne avec les signaux POSIX

Les signaux POSIX sont le résultat de la fondation Unix au cœur de macOS, mais pourquoi sont-ils là et comment pouvez-vous toujours les utiliser?

Les signaux POSIX sont le résultat de la fondation Unix au cœur de macOS, mais pourquoi sont-ils là et comment pouvez-vous toujours les utiliser?
Publicité

Dans Activity Monitor, il existe une option de menu cryptique pour envoyer un signal à traiter . Avez-vous déjà demandé ce que c'était? Si vous le sélectionnez, vous verrez des termes obscurs comme SIGINT et SIGHUP, qui ne clarifient pas vraiment les choses. Alors, quels sont exactement ces signaux?

Ces signaux sont le résultat de la fondation Unix Mac OS X Yosemite, Du point de vue d'un utilisateur Linux Mac OS X Yosemite, Du point de vue d'un utilisateur Linux Mac OS X est utilisé comme un enfant d'affiche pour une interface propre et élégante. En tant qu'écrivain Linux, il est de mon devoir de faire des comparaisons entre les distributions Linux, mais aussi contre la concurrence. Lire la suite au coeur de macOS. Terminal a certains de ces signaux intégrés: lorsque vous appuyez sur Ctrl + C pour arrêter une commande en cours d'exécution, vous envoyez le processus SIGINT pour interrompre et arrêter la commande en cours d'exécution. Ils étaient l'une des premières façons dont les applications pouvaient communiquer entre elles et faisaient partie des anciennes normes POSIX (Portable Operating System Interface).

Bien qu'il soit agréable de comprendre les bases du fonctionnement de votre système, vous pouvez également utiliser ces signaux pour capturer des informations sur les applications qui se comportent mal.

Qu'est-ce que POSIX?

POSIX est la norme de base pour les systèmes d'exploitation Unix et Unix-Like. Parmi ces systèmes compatibles, macOS a été conçu pour être compatible Unix. À la base, Darwin est un noyau Unix dont les racines remontent à NeXTSTEP. Cela lui-même était une fourchette de BSD, l'une des variantes Unix originales.

POSIX s'assure que tous ces systèmes d'exploitation traitent le code de manière attendue, ce qui permet aux développeurs de savoir que leur code est vraiment portable. Lorsqu'ils envoient un de ces signaux sur une autre machine à un processus, les données qu'ils récupèrent sont dans un format qu'ils peuvent anticiper et traiter. C'est une simplification grossière d'environ 40 ans d'histoire de l'informatique, mais vous obtenez l'idée générale.

Lorsque vous communiquez avec les démons les plus basiques qui composent la base Unix de macOS, ces signaux sont les meilleurs. Les démons sont les processus d'arrière-plan qui exécutent l'essentiel de votre ordinateur - ou dans le jargon commun de macOS, les services. L'infâme discoveryd est un exemple. C'était le remplacement d'OS X Yosemite 10.10 pour mDNSResponder, un autre service blâmé pour les problèmes de réseau dans cette mise à jour.

Ligne de commande
Crédit d'image: Dominik Rusiecki via Freeimages

Selon la façon dont une application est conçue pour recevoir des signaux, vous pouvez envoyer un signal pour quitter une application afin de créer ce que l'on appelle un vidage de base. Les vidages centraux contiennent toutes les données actuelles sur un programme en cours d'exécution. Ils sont essentiels pour le dépannage des applications qui tombent constamment en panne. Sur Mac, ces fichiers sont stockés dans le format de fichier Mach-O, que vous pouvez lire dans l'environnement de développement macOS appelé Xcode. La plupart des utilisateurs n'en feront probablement pas grand-chose, mais si vous êtes frustré par un problème d'application, il peut être utile de l'envoyer à un développeur pour obtenir de l'aide.

Il y a un autre petit peu de l'informatique classique montrant ses racines ici. Le format de fichier Mach-O partage son nom avec le micro-noyau Mach. Avec BSD, cela fait partie des racines de macOS, et les deux font partie du noyau fondamental, XNU. Mach n'est pas aussi chargé que BSD, donc il ne reçoit pas beaucoup de la presse mais fait partie de ce qui distingue le système d'exploitation d'Apple des autres variantes Unix.

Alors, comment puis-je les utiliser?

Nous avons tous été là avant: vous obtenez une mise à jour d'une application, ou télécharger une nouvelle application Comment installer et supprimer des logiciels Mac: 5 méthodes faciles Comment installer et supprimer des logiciels Mac: 5 méthodes faciles Commuté sur un Mac et se rendre à poignées avec les bases? Vous vous demandez comment installer un logiciel à partir de la ligne de commande? Vous avez d'anciennes applications Windows que vous devez simplement exécuter sur votre ordinateur Apple? Lire la suite, et il se bloque chaque fois que vous l'ouvrez. Vous ouvrez Force Quitter dans le menu Pomme et vous voyez que l'application apparaît comme ne répondant pas . Pire encore, c'est un processus d'arrière-plan qui entraîne votre système.

Moniteur d'activité

Ouvrez le moniteur d'activité et cliquez sur le processus qui ne répond pas. Ensuite, allez dans le menu Affichage et sélectionnez Envoyer le signal à traiter . Un menu apparaîtra et vous permettra de choisir le signal à envoyer au processus, sélectionnez votre signal et appuyez sur Envoyer .

Si vous préférez le Terminal 4 Cool choses que vous pouvez faire avec le terminal Mac 4 Cool choses que vous pouvez faire avec le terminal Mac Le Terminal est l'analogue de Mac OS X de l'invite de commande Windows, ou CMD. C'est un outil, comme vous le savez probablement déjà, qui vous permet de contrôler votre ordinateur à l'aide de commandes de texte, par opposition ... En savoir plus, vous utiliserez une commande que vous connaissez déjà. La commande kill est utilisée pour arrêter un processus. Si vous ajoutez -s vous pouvez ajouter un nombre pour envoyer un signal au processus que vous tuez. Voici une liste du nombre de listes de commandes courantes dans la page kill man:

  • 1 - HUP (raccrocher)
  • 2 - INT (interruption)
  • 3 - QUITTER (quitter)
  • 6 - ABRT (abandon)
  • 9 - Tuer (tuerie non-capturable et non-ignorable)
  • 15 - TERM (signal de terminaison de logiciel)

Il y a d'autres signaux que vous pouvez envoyer, ceux-ci sont les plus courants. Il y a une liste complète de codes disponibles ici.

Quand est-ce que je les utilise?

Maintenant que vous savez quoi faire avec les signaux POSIX, vous pouvez les utiliser pour arrêter vos processus bloqués proprement. Pour être juste, vous n'allez pas utiliser ces codes tous les jours. Lorsque vous travaillez avec un développeur sur un crash d'application étrange, ou que vous aidez votre administrateur système à tester les applications internes de votre entreprise, ces codes peuvent vous aider à obtenir les informations dont ils ont besoin.

Si l'application est codée pour créer ces dumps, vous les trouverez dans le répertoire /cores ce qui en fait un répertoire facile à consulter lorsque vous récupérez des données pour une application bloquée ou bloquée. Vous pouvez vérifier ici et voir ce que les dumps sont dans le répertoire en utilisant la commande ls -a . Cela va vous montrer tous les fichiers dans ce répertoire, vous pouvez ensuite les copier dans un répertoire plus accessible musique la commande mv filename destination .

Dans Terminal, utilisez la command cd /cores pour basculer vers le répertoire, puis ls -a pour lister le contenu. Pour déplacer un fichier vers votre dossier Documents, utilisez simplement mv filename /Users/username/Documents (en remplaçant le nom de fichier et le nom d'utilisateur ).

mackeyboard
Crédit d'image: Erika Varga via Freeimages

Si vous êtes un utilisateur de longue date d'Unix qui a déménagé sur Mac, quelles sont les autres fonctionnalités peu connues? Si vous êtes intéressé par un projet qui utilise uniquement la base open source de macOS, consultez PureDarwin. Faites-nous savoir comment cela a fonctionné dans les commentaires. Nous aimerions aussi entendre quand les signaux POSIX ont résolu un problème tenace avec votre Mac.

Avez-vous utilisé des signaux POSIX pour le dépannage avant?

Crédits image: Dean Drobot / Shutterstock

In this article