0 votes

Redémarrer OS X si une application s'est plantée/ne répond pas/fait du surplace ?

Comment puis-je redémarrer automatiquement la machine si une application s'est arrêtée d'une manière ou d'une autre ? Il se peut qu'elle ait quitté proprement, qu'elle présente une erreur de sortie inattendue ou qu'elle soit figée par le ballon de plage qui tourne.

Je ne veux pas relancer l'application, mais faire un redémarrage complet.

Des idées ? Merci.

0voto

bot47 Points 7292

Remplacez Shalalalala par le nom du processus que vous voulez surveiller.

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

0voto

davivid Points 111

Après beaucoup de recherches, d'essais et d'erreurs, je suis arrivé à la conclusion qu'il n'y a pas de moyen fiable de le faire. Par conséquent, j'ai utilisé une approche qui ne fonctionne qu'avec certaines applications, dans ce cas une qui modifie un fichier toutes les nSecondes. Évidemment, si l'application s'est écrasée, a quitté ou s'est figée, cela ne se produira pas.

Mon script d'Apple surveille ce fichier, et s'il détecte qu'il n'a pas été modifié après nSecondes, il forcera un redémarrage de la machine.

-- 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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X