Aller au contenu


Photo

relancer une application si elle plante


  • Please log in to reply
7 replies to this topic

#1 sigma6

sigma6

    Macfr addict

  • Membres
  • PipPipPipPipPip
  • 960 Messages :
  • Sexe:Masculin
  • Localisation:GVA
  • Passions:Bof...

Posté 01 septembre 2011 - 10:16

Salut à tous


Pas dans mes habitudes d'écrire dans ce forum, mais il faut un début à tout :)


J'essaie de faire un applescript qui ouvre une application si elle n'est pas ouverte et qui la relance si elle crash (et pourquoi pas si elle hang en fait).

Pour le moment j'ai la partie "ouvre l'appli si elle est pas ouverte":


tell application "System Events"
	if not (exists process "MonApp") then
		tell application "MonApp" to activate
	end if
end tell



mais une fois que le script est lancé, il ne s'execute plus.


Ma question:


Est-ce que j'ai meilleur temps de faire un timer qui relance ce bout de script toutes les X secondes? Ou il y a un moyen tout fait de faire une sorte de routine en tache de fond?

Ou alors je suis à coté de la plaque et ya un moyen encore plus simple de faire ce que je cherche?!


Merci à ceux qui savent et merci aux autres d'avoir pris le temps de lire quand même ;)

Ce message a été modifié par sigma6 - 01 septembre 2011 - 10:18 .


#2 csimple0-N

csimple0-N

    Habitué(e)

  • Membres
  • PipPip
  • 172 Messages :

Posté 01 septembre 2011 - 12:05

Bonjour

Essais de faire travailler ton code en tache de fond (donc invisible).
on idle
	try
		tell application "System Events"
			if not (exists process "MonApp") then
				tell application "MonApp" to activate
			end if
		end tell
	end try
	return 10
end idle

Tu enregistre en cochant Rester en arrière-plan (décoche si coché Écran de démarrage).

Teste pour voir si ça marche chez toi

@+

Ce message a été modifié par csimple0-N - 01 septembre 2011 - 12:07 .


#3 sigma6

sigma6

    Macfr addict

  • Membres
  • PipPipPipPipPip
  • 960 Messages :
  • Sexe:Masculin
  • Localisation:GVA
  • Passions:Bof...

Posté 01 septembre 2011 - 16:32

ouah cool, merci, ça semble fonctionner. Donc si j'ai bien compris, ca vérifie toutes les 10 secondes que l'appli est bien ouverte? Niveau ressources c'est à prendre en compte ou ça consomme rien de lister les process?

Si je voulais dans un cas hypothétique vérifier que l'appli n'est pas bloquée pour X raison (hang et ballon de plage), c'est faisable tu crois? c'est en bonus et pas vital, je pense pas que ça arrivera.


merci encore!

#4 sigma6

sigma6

    Macfr addict

  • Membres
  • PipPipPipPipPip
  • 960 Messages :
  • Sexe:Masculin
  • Localisation:GVA
  • Passions:Bof...

Posté 18 mai 2014 - 21:26

Hello,

Suis tombé la dessus l'autre jour, j'ai l'impression que c'est nouveau depuis Mavericks. On sait jamais, ça peut servir. Toujours prenant d'une méthode pour forcer à quitter et relancer une appli qui hang si jamais quelqu'un a ça en stock. Merci :)

if application "MonApp" is not running then
--ce que tu veux ici, mais la ça ouvre un fichier
tell application "Finder" to open POSIX file "/Users/moi/Desktop/fichier.ext"
end if

Ce message a été modifié par sigma6 - 18 mai 2014 - 21:29 .


#5 Amarok II

Amarok II

    NeoAdmin

  • Administrateurs
  • PipPipPipPipPipPip
  • 1 472 Messages :
  • Configuration:Un petit truc en alu avec un grand rectangle lumineux qui affiche des choses qui bougent quand je chatouille un autre truc en alu, là... tout plat.
  • Sexe:Mystère
  • Localisation:Perpignan, France
  • Passions:MacFr bien sûr !

Posté 18 mai 2014 - 23:15

ce genre là (pris sur le net) :
set myProcesses to {"Mail", "Safari", "iChat"} -- The ones to quit.
tell application "System Events"
   repeat with myProcess in myProcesses
	   set theID to (unix id of processes whose name is myProcess)
	   try
		   -- Should stop the application with no dialogs and no items saved.
		   do shell script "kill -9 " & theID
	   end try
   end repeat
end tell


MacBook Pro (13", fin 2012)
8Go RAM - 256Go SSD - 1To HD

Technicien certifié ACMT et plein d'autres trucs...

"On peut voir de bien des façons. On peut être aveugle de bien des façons." (Frank Herbert, Dune)

"Tu ne feras point de machine à l'esprit de l'homme semblable." (Frank Herbert, Dune)


#6 sigma6

sigma6

    Macfr addict

  • Membres
  • PipPipPipPipPip
  • 960 Messages :
  • Sexe:Masculin
  • Localisation:GVA
  • Passions:Bof...

Posté 18 mai 2014 - 23:47

Merci, mais lui se contente de quitter les applis, moi ce que je cherche avant tout à savoir c'est si l'application est freezée (hang) ou pas, après quitter et reouvrir c'est pas trop compliquer ;)

j'ai trouvé ça, j'ai pas testé, j'ai pas d'appli qui hang sous la main, mais ça semble être pile ça

set The_app to "FileMaker Pro"
set state to ""
tell application "System Events"
try
  set PID to the unix id of process The_app as Unicode text
  set state to paragraph 2 of (do shell script "ps -p " & quoted form of PID & " | awk '{ print $3 }'")
end try
end tell
if state = "Z" then
do shell script "kill " & PID

tell application The_app to activate
end if


#7 zekiller28

zekiller28

    Admin qui mord

  • Administrateurs
  • PipPipPipPipPipPipPipPipPip
  • 10 678 Messages :
  • Configuration:Toutes sortes de Mac du PPC à l'Intel et toute sorte de MacOS X De Panther Client à Maverick.
  • Sexe:Masculin
  • Localisation:Saint-Hilarion (78)

Posté 19 mai 2014 - 11:25

Attention, avec un Timer qui va "activer" l'application toutes les xx minutes, cette dernière risque de passer au premier plan à chaque itération du Timer, ce qui peut-être très pénible pour l'utilisateur…
Le site de ToolsX
Le site de ToolsXOptimizer

Apple Certified Mac Management Basics 10.12
Apple Certified Mac Management Basics 10.9 English
Apple Certified Mac Integration Basics 10.9 English
Apple Certified Associate Mac Integration 10.8
Apple Certified Mac Management Basics 10.8

#8 sigma6

sigma6

    Macfr addict

  • Membres
  • PipPipPipPipPip
  • 960 Messages :
  • Sexe:Masculin
  • Localisation:GVA
  • Passions:Bof...

Posté 19 mai 2014 - 12:37

T'inquiète, c'est pour une utilisation dans les expos ou les ordinateurs sont jamais touchés par l'humain. Et c'est surtout pour réduire les risques si il y a crash ou plantage, que ça puisse repartir tout seul, mais 99 fois sur 100 ça plante pas :bien: Dans le cas de ces scripts, il fait rien tant qu'il n'y a pas besoin alors même pour une autre utilisation ça devrait pas gêner.

Merci pour le tips.

Quand j'aurais un script du tonnerre testé et approuvé, je le posterais ici.

Ce message a été modifié par sigma6 - 19 mai 2014 - 12:39 .





1 utilisateur(s) en train de lire ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)