GNU/Linux >> Tutoriales Linux >  >> Linux

¿Comprobar el proceso si se está ejecutando lo mismo?

¿Hay una secuencia de comandos o una forma en Linux que cuando intento ejecutar una secuencia de comandos/proceso de shell, si se está ejecutando lo mismo, indicará que se está ejecutando lo mismo y se cerrará; de lo contrario, continuará?

Respuesta aceptada:

Puedes usar este delineador para hacer lo que quieras:

$ pgrep script.bash && echo "already running" || ( ./script.bash & )

Ejemplo

Digamos que tenía este script:

$ cat script.bash 
#!/bin/bash

echo "Hello World"
sleep 10

Si usamos nuestra única línea:

$ pgrep script.bash && echo "already running" || ( ./script.bash & )
Hello World
$

Lo ejecutamos de nuevo:

$ pgrep script.bash && echo "already running" || ( ./script.bash & )
10197
already running
$

Esperando 10 segundos y ejecutándolo nuevamente, nuevamente funciona:

$ pgrep script.bash && echo "already running" || ( ./script.bash & )
Hello World
$

Linux
  1. ¿Cambiar el entorno de un proceso en ejecución?

  2. ¿Cómo ver la salida de un proceso en ejecución en otra sesión de Bash?

  3. Comprobar la base de datos en busca de corrupción

  4. ¿Cómo verificar si un proceso todavía se está ejecutando usando Python en Linux?

  5. Verifique el límite de FD abierto para un proceso dado en Linux

Golpe para bucle

Tutorial de secuencias de comandos de Bash para principiantes

Tutorial de Bash Heredoc para principiantes

Procesos corriendo

¿Cómo verifico la sintaxis de un script Bash sin ejecutarlo?

¿Los archivos .pid son confiables para determinar si un proceso se está ejecutando?