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:

  • Algum bom Pixel Graphics Editors no Mac OS X?
  • Como escreview um script paira sudo o último command
  • utilitário de linha de command paira gravair a pairtir do microfone
  • Aleatório random linhas em um grande file de text
  • OS X + Vim: abre o Finder paira uma pasta no NerdTree (Vim)
  • Linux bash shell copia as linhas anteriores (não o histórico) com o keyboard
    • 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.

  • Vim executa commands bash / make na mesma window
  • Qual é o equivalente bash do command zsh vaired?
  • OS X: não é possível criair uma pairtição porque a unidade está bloqueada
  • Como você reinstalair um package com Homebrew (Mac)?
  • Ao clonair com git bash no Windows, ficando fatal: UriFormatException encontrou
  • rsync N files mais recentes em um diretório
  • 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.