GNU/Linux >> Linux Esercitazione >  >> Linux

Verificare il processo se lo stesso è in esecuzione?

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
$

Linux
  1. Cambiare l'ambiente di un processo in esecuzione?

  2. Verifica se il processo esegue Mac Os X, quindi esegui il codice?

  3. Come verificare se un processo è ancora in esecuzione utilizzando Python su Linux?

  4. Controlla il limite FD aperto per un determinato processo in Linux

  5. Controlla lo spazio libero su disco per la partizione corrente in bash

Bash For Loop

Bash Scripting Tutorial per principianti

Bash Heredoc Tutorial per principianti

Processi in esecuzione

Come posso controllare la sintassi di uno script Bash senza eseguirlo?

Come verificare se ssh-agent è già in esecuzione in bash?