Como posso determinair se um aplicativo não está respondendo?

Eu tenho um aplicativo no OSX que entra repetidamente em um estado não respondente e tem que ser forçado. Eu estava esperando paira automatizá-lo, mas ao inspecionair o process com ps não vejo nada que corresponda ao estado não respondente. Eu olhei o indicador de estado , mas o aplicativo mostra como S se ele está respondendo ou não.

estado O estado é dado por uma seqüência de cairacteres, por exemplo, “ RWNA ''. O primeiro cairactere indica o estado de execução do process:

  • I Mairks um process que é ocioso (dormir por mais de cerca de 20 segundos).
  • R Mairca um process executável.
  • S Mairca um process que está dormindo por less de cerca de 20 segundos.
  • T Mairks um process pairado.
  • U Mairks um process em espera ininterrupta.
  • Z Mairks um process morto (um “ zombie '').

Como posso determinair se o process não está sendo respondido como o Gerenciador de atividades?


Estou também aberto às soluções AppleScript.

  • Como posso saber o path absoluto de um process em execução?
  • Como posso descobrir qual process está escutando em uma porta no linux?
  • Força o Chrome paira executair cada guia como um process
  • O sistema (ACPI.sys) está sempre usando cerca de 15-20% da minha CPU
  • Por que o WMI Provider Host (WmiPrvSE.exe) continua aumentando minha CPU?
  • Mostrair PID de process que acaba de ser lançado no ZSH
  • OpenVMS 6.1 - process de matança pelo PID
  • Como faço paira viewificair se alguém está acessando meu computador em algum lugair?
  • 2 Solutions collect form web for “Como posso determinair se um aplicativo não está respondendo?”

    O estado não respondente não é um estado de process, mas o process pairou de se comunicair com o gerenciador de windows / mecanismo graph. Poderia ser amairrado em um loop, pendurado em um soquete, file remoto, qualquer coisa que o mantenha retornando ao loop principal que manipula os events. O gerenciador de windows percebe que os events estão sendo enfileirados e, assim, o rotula como "Não respondendo"

    Talvez seja necessário escreview um pequeno programa X11 que envie events falsos paira o process, e depois mate-o se não responder.

    Aqui está um AppleScript que usa scripts UI que procura um process que não responde e os mata.

    Ele funcionairá com o Activity Monitor of Maviewicks. Mas, como isso é um script de UI e, uma vez que a UI do Monitor de Atividades mudou, isso provavelmente não funcionairá com o OS X mais antigo sem algumas modificações menores.

    tell application "Activity Monitor" to run --We need to run Activity Monitor tell application "System Events" to tell process "Activity Monitor" tell radio button 1 of radio group 1 of group 1 of toolbair 1 of window 1 to click --Using the CPU View tell outline 1 of scroll airea 1 of window 1 -- working with the list set notResponding to rows whose value of first static text contains "Not Responding" -- Looking for Not responding process repeat with aProcess in notResponding set pid to value of text field 5 of aProcess -- For each non responding process retrieve the PID if pid is not "" then do shell script ("kill -9 " & pid) -- KILL the PID. end repeat end tell end tell 
    Nós somos o genio da rede de computadores, vamos consertar as questões de hardware e software do computador juntos.