Saltar al contenido

Cómo matar el script de Python con el script de bash

Solución:

Usar pkill comando como

pkill -f test.py

(o) una forma más infalible usando pgrep para buscar el ID de proceso real

kill $(pgrep -f 'python test.py')

O si se identifica más de una instancia del programa en ejecución y todas deben eliminarse, use killall (1) en Linux y BSD

killall test.py 

Puedes usar el ! para obtener el PID del último comando.

Sugeriría algo similar a lo siguiente, que también verifique si el proceso que desea ejecutar ya se está ejecutando:

#!/bin/bash

if [[ ! -e /tmp/test.py.pid ]]; then   # Check if the file already exists
    python test.py &                   #+and if so do not run another process.
    echo $! > /tmp/test.py.pid
else
    echo -n "ERROR: The process is already running with pid "
    cat /tmp/test.py.pid
    echo
fi

Entonces, cuando quieras matarlo:

#!/bin/bash

if [[ -e /tmp/test.py.pid ]]; then   # If the file do not exists, then the
    kill `cat /tmp/test.py.pid`      #+the process is not running. Useless
    rm /tmp/test.py.pid              #+trying to kill it.
else
    echo "test.py is not running"
fi

Por supuesto, si el asesinato debe tener lugar algún tiempo después de que se haya lanzado el comando, puede poner todo en el mismo script:

#!/bin/bash

python test.py &                    # This does not check if the command
echo $! > /tmp/test.py.pid          #+has already been executed. But,
                                    #+would have problems if more than 1
sleep(<number_of_seconds_to_wait>)  #+have been started since the pid file would.
                                    #+be overwritten.
if [[ -e /tmp/test.py.pid ]]; then
    kill `cat /tmp/test.py.pid`
else
    echo "test.py is not running"
fi

Si desea poder ejecutar más comandos con el mismo nombre simultáneamente y poder eliminarlos de forma selectiva, se necesita una pequeña edición del script. ¡Dime, intentaré ayudarte!

Con algo como esto, estás seguro de que estás matando lo que quieres matar. Comandos como pkill o agarrando el ps aux puede ser arriesgado.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *