2012-06-04 19 views
28

Hola tengo el siguiente proceso que no puedo mato:¿Cómo matar un proceso en cygwin?

The process to be killed.

Me postulo cygwin en Windows XP de 32 bits.

He tratado emitiendo los siguientes comandos:

/bin/kill -f 4760 
/bin/kill -9 5000 
kill -9 5000 
kill 5000 

cuando escribo/bin/kill -f 4760 me sale el mensaje, 'matar: No se pudo abrir pid 4760'.

Cuando escribo/bin/kill -9 5000 obtengo el mensaje, 'matar: 5000: No hay tal proceso'.

Simplemente no entiendo por qué este proceso no se puede matar. Dado que tiene un WINID no debería ser asesinado por/bin/kill -f 4760?

esperanza alguien puede ayudar THX :)

+3

1. cygwin comienzo como usuario Administrador 2. Utilice la ruta/bin/kill (kill es un comando de shell en el shell bash) 3./ bin/kill -f debería funcionar entonces –

+0

1. Inicie el terminal Cygwin como usuario administrador 2. Utilice la ruta/bin/kill (kill es especial en el shell bash) 3./bin/kill -9 -f debería entonces trabajo 4. Es posible que los procesos de Windows estén en un estado donde no pueden ser eliminados (como ser depurados) –

Respuesta

21

El proceso está bloqueado desde Windows más probable. El error que está recibiendo "couldnt open PID XXX" apunta a esto. Para confirmar intentar matarlo con ventanas taskkill

taskkill /PID 4760 
+0

Cuando escribo taskkill/PID 4760 o taskkill/PID 5000 obtengo el error: 'ERROR: El proceso' 4760 "no encontrado". – Diemauerdk

+0

Además, en la administración de tareas de Windows no puedo ver el proceso. – Diemauerdk

+0

Lo ves cuando haces una lista de tareas | grep "dscli" desde la línea de comandos de Windows? – kjp

2

diferentes programas de Windows se encargará de las señales que envía kill de manera diferente; nunca han sido diseñados para tratar con ellos de la misma manera que los programas Linux/Cygwin.

El único método confiable para matar un programa de Windows es utilizar una herramienta específica de Windows, como el Administrador de tareas o el Explorador de procesos.

Dicho esto, si no lo ha hecho aún, puede tener suerte al ejecutar su terminal Cygwin en modo administrador (haga clic con el botón derecho en su acceso directo y seleccione "Ejecutar como administrador").

1

El método presentado por @Donal Tobin es correcta:

kill -f <pid>

Sin embargo, no necesito iniciar la sesión como administrador.

8

Curiosamente, las siguientes obras en Cygwin:

echo PID1 PID2 PID3 | xargs kill -f 

Por ejemplo:

ps -W | grep WindowsPooPoo | awk '{print $1}' | while read line; do echo $line | xargs kill -f; done; 
+0

El factor importante para mí aquí fue el argumento' -f' en 'kill' . Al agregar eso, se detuvo el error "No hay tal proceso". ¡Gracias! –

1

Crear un archivo llamado killall.sh con esta línea

ps -W | grep $1 | awk '{print $1}' | while read line; do echo $line | xargs kill -f; done; 

luego darle ejecutar permisos

chmod 777 killall.sh 

En su .bash_profile añadir esta línea

alias killall="~/killall.sh" (point it to the correct location) 

A continuación, sólo tiene que escribir "killall [nombre]"

Cuestiones relacionadas