C'è uno script o un modo in Linux che quando provo a eseguire uno script/processo di shell, se lo stesso è in esecuzione, richiederà che lo stesso sia in esecuzione e uscirà altrimenti continuerà.
Risposta accettata:
Puoi usare questa fodera per fare quello che vuoi:
$ pgrep script.bash && echo "already running" || ( ./script.bash & )
Esempio
Supponiamo che io abbia questo script:
$ cat script.bash
#!/bin/bash
echo "Hello World"
sleep 10
Se usiamo la nostra unica fodera:
$ pgrep script.bash && echo "already running" || ( ./script.bash & )
Hello World
$
Lo eseguiamo di nuovo:
$ pgrep script.bash && echo "already running" || ( ./script.bash & )
10197
already running
$
Aspettando 10 secondi e riavviandolo, funziona di nuovo:
$ pgrep script.bash && echo "already running" || ( ./script.bash & )
Hello World
$