Matar un proceso por nombre usando Python

Un proceso se identifica en el sistema por lo que se conoce como ID de proceso y ningún otro proceso puede usar ese número como su ID de proceso mientras ese primer proceso aún se está ejecutando. Imagina que eres un administrador de sistemas de una empresa e inicias una aplicación desde tu menú y comienzas a usar esa aplicación de repente notas que la aplicación dejó de funcionar o muere inesperadamente. Vuelve a intentar iniciar esa aplicación, pero resulta que la aplicación nunca se cierra por completo. Dado que usted es un administrador, escriba un comando en Process ID y elimine ese proceso de inmediato. Imagine este escenario: los empleados de su empresa acuden a usted todos los días para quejarse de la misma situación, ya que no saben qué es PID y cómo matar un proceso. Así que se te ocurrió la idea de escribir un script en Python que tome como entrada solo el nombre de la aplicación o el proceso y lo apague por completo. Le dio este script a sus empleados para que cada vez que esto suceda, no necesiten quejarse ni saber cuál es la identificación del proceso o cómo eliminar el proceso, solo ingrese el nombre y todo se solucionará. 

Funciones utilizadas: 

  • os.popen(): este método se utiliza para abrir un pip desde y hacia el comando. 
    En la imagen de abajo puedes ver que el proceso firefox se está ejecutando 
  • os.kill(): este método en Python se usa para enviar una señal específica al proceso con una identificación de proceso específica. 

A continuación se muestra la implementación.

En la imagen de abajo puedes ver que el proceso firefox se está ejecutando.  

process

Python3

import os, signal
  
def process():
     
    # Ask user for the name of process
    name = input("Enter process Name: ")
    try:
         
        # iterating through each instance of the process
        for line in os.popen("ps ax | grep " + name + " | grep -v grep"):
            fields = line.split()
             
            # extracting Process ID from the output
            pid = fields[0]
             
            # terminating process
            os.kill(int(pid), signal.SIGKILL)
        print("Process Successfully terminated")
         
    except:
        print("Error Encountered while running script")
  
process()

Producción:
 

python-kill-process

En la imagen de arriba, puede ver que todas las instancias de Firefox han sido canceladas. El que ve en la imagen es la instancia a la que llama el comando grep. Ahora puede verificar que su navegador Firefox se haya cerrado por completo.
 

Publicación traducida automáticamente

Artículo escrito por Naveen Chaudhary 1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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