0 votes

Comment redémarrer un processus sans interaction avec l'utilisateur

J'ai tué un processus (un simple .jar fonctionnant en arrière-plan comme un agent global) par pkill -9 java . Puisque l'agent global dans launchd est configuré en tant que keepAlive le processus est redémarré immédiatement.

Malheureusement, cette vilaine popup ("L'action Run Shell script a rencontré une erreur") apparaît et empêche le redémarrage du processus sans interaction de l'utilisateur. enter image description here

Est-il possible que launchd redémarre simplement le processus sans attendre que l'utilisateur appuie sur OK dans cette popup ? Après avoir appuyé sur OK, le processus est redémarré correctement.

EDIT : Le script est le suivant enter image description here

1voto

nohillside Points 82672

Si vous terminez le processus java avec kill -9 le shell qui a appelé reçoit un code d'erreur en retour. Dans votre cas, l'exécution de java est la seule commande dans le script exécuté par Automator, de sorte que le code d'erreur est interprété par Automator comme une erreur générale qui déclenche le popup.

Si vous ajoutez tout une autre commande après l'appel java (enfin, toute commande qui se termine avec succès), l'action Exécuter Shell script se terminera avec succès et Automator ne remarquera même pas que le processus java a été interrompu. Cette commande peut être quelque chose de simple comme : (qui, dans cette forme, ne fait rien) ou sleep 0 (qui se termine généralement avec succès).

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