¿Cómo matar un proceso de Windows en una terminal cygwin?

¿Cómo matar un proceso de Windows en una terminal cygwin?

Tengo un problema con respecto a cómo finalizar un proceso en Cygwin en Windows. Soy completamente nuevo en Cygwin. Pero tengo una tarea que simplemente no puedo completar. Intenté emitir los siguientes comandos:

kill 4568
kill -9 4568
/bin/kill -f 4568

He emitido los comandos en una terminal Cygwin separada ya que no puedo presionar Ctrl+C en la terminal Cygwin donde se ejecuta el proceso. He buscado por todo internet sin éxito.

Respuesta1

ps -W | awk '/calc.exe/,NF=1' | xargs kill -f

O

ps -W | awk '$0~v,NF=1' v=calc.exe | xargs kill -f

O

powershell kill -n calc

Respuesta2

Puedes intentar:

taskkill /pid 4568

Respuesta3

Si desea una solución exclusiva de BASH, pruebe esto: (a mí me funciona)

    KILLPS="<My Process Name>"
    WINPS=`ps -W | grep -i $KILLPS`         # Make case-insensitive.
    PID=`echo $WINPS | cut -d' ' -f1` 
    /bin/kill -f "$PID"

NOTA: use /bin/kill, la eliminación del shell integrada no eliminará los PID para procesos generales de Windows.

Respuesta4

Dos cosas para pensar aquí:

  1. Obtenga el PID correcto, que es el WINPID.
  2. Utilice la herramienta adecuada.

Para obtener el WINPID correcto para eliminar, utilice cat /proc/<PID>/winpid. Es decir, ejecute esto:

ZID=$$; WINPID=$(cat /proc/${ZID}/winpid); echo "Kill WINPID: ${WINPID}"; ps; sleep 10 &
 

e inmediatamente después haz otro ps.

La herramienta adecuada a utilizar esSistemas internos' PsKill64.exe -t <winpid>que también mata a todos los descendientes del proceso del script, lo cual killno es así.

información relacionada