Ou utiliser flock pour éviter de lancer deux fois un même process/outil. Par exemple "flock -n /var/lock/myapp -c /path/to/myapp" ne va executer l'appli que si le lockfile n'est pas déjà existant et ouvert.
Le 27/08/2013 20:09, Thibault Jouan a écrit :
On 2013-08-27 16:39:29 +0200, seb astien wrote:
Tiens moi j'ai un "souci différent". Je lance via supervisor des .sh qui lance eux même des -jar. Le .sh est très simple et contient java -jar machin.jar $@.
Mais forcément, quand je restart le process via supervisor, ça ne restart que le sh et je me retrouve avec deux process jar, alors que je voulais restart le jar.
Je ne connais pas supervisor, mais j'imagine qu'on peut lui indiquer où aller chercher le pid souhaité (dans un fichier), et inclure cette logique dans le script shell ($$).
Par défaut il détermine peut-être le pid du premier processus (le script shell) comme étant le processus à gérer. S'il n'est pas requis de démarrer un nouveau processus, il est peut-être plus simple de modifier le script pour remplacer le shell courant plutôt que de forker :
#!/usr/bin/env sh
exec java -jar machin.jar $@
Mais du coup le script devient plutôt inutile, autant lancer la programme java directement depuis supervisor peut-être ?