Résoudre les problèmes liés aux applications Mac à l'ancienne avec les signaux POSIX

Résoudre les problèmes liés aux applications Mac à l'ancienne avec les signaux POSIX / Mac

Dans Activity Monitor, une option de menu cryptique vous permet de: Envoyer le signal au processus. Vous êtes-vous déjà demandé ce que c'était? Si vous le sélectionnez, vous verrez des termes obscurs comme SIGINT et SIGHUP, ce qui ne clarifie pas 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 afficheur 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 également contre la concurrence. Lire la suite au cœur de macOS. Terminal contient certains de ces signaux intégrés: lorsque vous appuyez sur Ctrl + C pour arrêter une commande en cours, vous envoyez le processus SIGINT pour interrompre et arrêter la commande en cours d'exécution. Ils ont été l’un des premiers moyens par lesquels les applications pouvaient communiquer entre eux et font partie du vieux “Interface de système d'exploitation portable” (POSIX) normes.

Bien qu'il soit agréable de comprendre les principes de base du fonctionnement de votre système, vous pouvez également utiliser ces signaux pour capturer des informations sur les applications défectueuses..

Qu'est-ce que POSIX??

POSIX est la norme de base pour les systèmes d'exploitation Unix et Unix. Mac OS est l'un de ces systèmes compatibles, conçu pour être compatible Unix. Darwin est un noyau Unix dont les racines remontent à NeXTSTEP. C’est un fork de BSD, l’une des variantes Unix originales..

POSIX veille à ce que tous ces systèmes d'exploitation gèrent le code de la manière attendue, ce qui permet aux développeurs de savoir que leur code est réellement portable. Lorsqu'ils envoient l'un de ces signaux sur un autre ordinateur à un processus, les données qu'ils reçoivent 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 avez l’idée générale.

Lorsque vous communiquez avec les démons les plus élémentaires constituant 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 langage courant de macOS, les services. L'infâme a découvert est un exemple. C’était le remplacement d’OS X Yosemite 10.10 pour mDNSResponder, un autre service responsable des problèmes de réseau dans cette mise à jour.

Crédit d'image: Dominik Rusiecki via Freeimages

En fonction de la manière 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 core dump. Les vidages mémoire contiennent toutes les données actuelles sur un programme en cours d'exécution. Celles-ci sont essentielles pour le dépannage des applications qui se bloquent constamment. Sur Mac, ces images sont exportées au format de fichier Mach-O, que vous pouvez lire dans l’environnement de développement macOS appelé Xcode. La plupart des utilisateurs ne feront probablement rien avec cela, 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 morceau d'informatique classique montrant ses racines ici. Le format de fichier Mach-O partage son nom avec le micro-noyau de Mach. Avec BSD, cela fait partie des racines de macOS, et les deux font partie du noyau fondamental, XNU. Mach n’est pas aussi riche en histoire que BSD, il n’a donc pas beaucoup de presse, mais fait partie de ce qui distingue le système d’exploitation d’Apple des autres versions Unix..

Alors, comment puis-je les utiliser?

Nous sommes tous déjà passés par là: vous obtenez une mise à jour d'une application ou vous téléchargez une nouvelle application. Comment installer et supprimer des logiciels Mac: 5 méthodes simples Comment installer et supprimer des logiciels Mac: 5 méthodes simples Basculement vers un Mac saisit 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? Lisez plus et il se bloque à chaque fois que vous l'ouvrez. Vous ouvrez Forcer à quitter dans le menu Apple et voir que l’application s’affiche comme Ne répond pas. Pire encore, il s’agit d’un processus en arrière-plan qui tire votre système vers le bas.

Ouvrir Moniteur d'activité et cliquez sur le processus qui ne répond pas. Puis aller au Vue menu et sélectionnez Envoyer un 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 choses cool que vous pouvez faire avec le terminal Mac 4 choses cool que vous pouvez faire avec le terminal Mac Le terminal est l'analogue Mac OS X de l'invite de commande Windows ou CMD. Comme vous le savez probablement déjà, c’est un outil qui vous permet de contrôler votre ordinateur à l’aide de commandes de texte, par opposition à… Lire la suite, vous utiliserez une commande que vous connaissez déjà. le tuer La commande est utilisée pour arrêter un processus. Si vous ajoutez -s vous pouvez ajouter un numéro pour envoyer un signal au processus que vous tuez. Voici une liste du nombre de commandes courantes dans la liste tuer page de manuel:

  • 1 - HUP (raccrocher)
  • 2 - INT (interruption)
  • 3 - QUITTER (quitter)
  • 6 - ABRT (avorter)
  • 9 - KILL (kill non capturable, non ignorable)
  • 15 - TERM (signal de fin de logiciel)

Vous pouvez également envoyer d’autres signaux, c’est-à-dire les plus courants. Une liste complète des codes est disponible 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 proprement vos processus bloqués. Pour être juste, vous n'utiliserez pas 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 sauvegardes, vous les trouverez dans le répertoire. / noyaux ce qui en fait un répertoire facile à consulter lors de l'obtention de données pour une application bloquée ou bloquée. Vous pouvez vérifier ici et voir quels dumps sont dans le répertoire en utilisant le ls -a commander. Cela vous montrera tous les fichiers de ce répertoire, vous pourrez ensuite les copier dans un répertoire plus accessible, la musique de la commande mv nom de fichier destination.

Dans Terminal Utilisez le commande cd / cores pour passer au répertoire, puis ls -a pour lister le contenu. Pour déplacer un fichier dans votre dossier Documents, utilisez simplement Nom de fichier mv / Utilisateurs / Nom d'utilisateur / Documents (remplaçant nom de fichier et Nom d'utilisateur).

Crédit d'image: Erika Varga via Freeimages

Si vous êtes un utilisateur Unix de longue date qui a migré vers le Mac, quelles sont les autres fonctionnalités peu connues qui existent? Si vous souhaitez extraire un projet utilisant uniquement la fondation open source de macOS, consultez PureDarwin. Dites-nous comment cela a fonctionné dans les commentaires. Nous aimerions également savoir quand les signaux POSIX ont résolu un problème persistant avec votre Mac..

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

Crédits d'image: Dean Drobot / Shutterstock

Explorer plus sur: Invite de commandes, macOS Sierra, Terminal, Unix.