J'ai une application sur OSX qui passe à plusieurs reprises dans un état de non-réponse et doit être tuée de force. J'espérais l'automatiser, mais lors de l'inspection du processus avec ps, je ne vois rien qui corresponde à l'état de non-réponse. J'ai regardé l' indicateur d' état , mais l'application indique comme S si elle répond ou non.
état L'état est donné par une séquence de caractères, par exemple, `` RWNA ''. Le premier caractère indique l'état d'exécution du processus:
- I Marque un processus inactif (sommeil pendant plus de 20 secondes environ).
- R Marque un processus exécutable.
- S Marque un processus qui dort moins de 20 secondes environ.
- T Marque un processus arrêté.
- U Marque un processus en attente ininterrompue.
- Z Marque un processus mort (un `` zombie '').
Comment puis-je déterminer si le processus ne répond pas comme le fait le gestionnaire d'activités?
Je suis également ouvert aux solutions AppleScript.
Voici un AppleScript utilisant des scripts d'interface utilisateur qui recherche un processus qui ne répond pas et les tue.
Cela fonctionnera avec le moniteur d'activité de Mavericks. Mais comme il s'agit de scripts d'interface utilisateur et que l'interface utilisateur du moniteur d'activité a changé, cela ne fonctionnera probablement pas avec les anciens OS X sans quelques modifications mineures.
la source
tell radio button 1 of radio
. J'ai supprimé cela et modifié quelques autres choses (je veux seulement tuer un programme spécifique) et obtenir l'erreur d'exécution: 'erreur "Les événements système ont une erreur: l'accès pour les appareils et accessoires fonctionnels est désactivé." numéro -1719 de la fenêtre 1 du processus "Moniteur d'activité" 'tell radio button 1 of radio group 1 of group 2 of toolbar 1 of window 1 to click
(Publier cela comme une réponse séparée depuis trop longtemps pour tenir dans un commentaire)
Nous remercions @MatthieuRiegler pour le script original.
Cela a fonctionné le 10.12.6 et est une modification mineure du script original (vu le commentaire de @ CharlieGorichanaz après avoir fait ma propre enquête):
** 1 Dans macOS 10.12.x, la barre d'outils contient uneicônesupplémentaire enraison de laquelle l'ensemble de boutons (CPU, mémoire, énergie, etc.) se trouve à la
group 2 of toolbar 1
place degroup 1 of toolbar 1
. En l'absence de cette icône (je n'ai pas confirmé dans les anciennes versions de macOS), je pense que les boutons du CPU, etc.group 1 of toolbar 1
** 2 Cela s'applique si vous avez déjà fait glisser la colonne PID de la colonne Activité vers une position différente. J'avais fait glisser la colonne PID vers la position la plus à gauche, donc sur cette ligne, j'ai dû changer l'index en
1
:Les colonnes sont numérotées à partir de l'extrême gauche, à partir de 1. Ajustez donc l'index en surbrillance dans la ligne ci-dessus en conséquence si nécessaire.
la source