Existe-t-il un script ou un moyen sous Linux qui, lorsque j'essaie d'exécuter un script/processus shell, s'il est en cours d'exécution, il indiquera que le même est en cours d'exécution et se terminera sinon il continuera.
Réponse acceptée :
Vous pouvez utiliser cette doublure pour faire ce que vous voulez :
$ pgrep script.bash && echo "already running" || ( ./script.bash & )
Exemple
Supposons que j'ai ce script :
$ cat script.bash
#!/bin/bash
echo "Hello World"
sleep 10
Si nous utilisons notre doublure :
$ pgrep script.bash && echo "already running" || ( ./script.bash & )
Hello World
$
Nous l'exécutons à nouveau :
$ pgrep script.bash && echo "already running" || ( ./script.bash & )
10197
already running
$
En attendant 10 secondes et en l'exécutant à nouveau, cela fonctionne à nouveau :
$ pgrep script.bash && echo "already running" || ( ./script.bash & )
Hello World
$