Riavvia OS X se un'applicazione si è arrestata in modo anomalo / non risponde / ha superato il beach volley?

0

Come posso riavviare automaticamente la macchina se un'applicazione si è arrestata in modo anomalo? Potrebbe essere uscito in modo pulito, avere un errore inaspettatamente chiuso o essere congelato con il beachball rotante.

Non voglio riavviare l'app, ma eseguo un riavvio completo.

Qualche idea? Grazie.

    
posta davivid 13.09.2013 - 11:34
fonte

2 risposte

0

Dopo molte ricerche, prove ed errori, sono giunto alla conclusione che non esiste un modo affidabile per farlo. Quindi ho usato un approccio che funzionerà solo con determinate applicazioni, in questo caso uno che modifica un file ogni nSeconds. Ovviamente se l'applicazione si è arrestata in modo anomalo, è terminata o è bloccata, ciò non accadrà.

My Apple Script controlla questo file e, se rileva che non è stato modificato dopo nSeconds, forzerà il riavvio della macchina.

-- Watchdog Script --
--
-- Continually checks that a file is modified, otherwise will force a system restart
-- 2013 David Penney

-- Config
set HFSpath to "app/data/logfile.log"
set username to "user"
set passwrd to "pass"
set updateIntervalSeconds to 5
-- End Config

set lastModTime to "Deltron 3030"
delay (60)

repeat
    tell application "System Events"
        set newModTime to modification date of file HFSpath
    end tell
    if newModTime is equal to lastModTime then
        do shell script "shutdown -r now" user name username password passwrd with administrator privileges
        log "booooooM"
    else
        set lastModTime to newModTime
        log "coolio"
    end if
    delay (updateIntervalSeconds)
end repeat
    
risposta data 17.09.2013 - 10:13
fonte
0

Sostituisci Shalalalala con il nome del processo che vuoi monitorare.

property NameOfVictim : "Shalalalala"


tell application "System Events"
    set ps to get the name of every process

    repeat while ps contains NameOfVictim
        set ps to get the name of every process
    end repeat

    restart
end tell  
    
risposta data 13.09.2013 - 12:18
fonte

Leggi altre domande sui tag