¿Cómo elimino procesos en Ubuntu?

129

¿Cómo elimino todos los procesos que ejecuta mi propia cuenta no root?

Tengo algunos procesos spinning smbd que causé desde mi máquina de Windows, así que hice una telnet en el servidor de Linux y quiero matar esos procesos de rotación. No tengo autorización para reiniciar servicios o reiniciar la máquina.

    
pregunta djangofan 17.02.2012 - 00:49

13 respuestas

156

Para matar todos los procesos que tienes permiso para matar, simplemente ejecuta el comando

kill -15 -1 o kill -9 -1 según el comportamiento deseado (use man kill para más detalles)

Para matar un proceso específico, por ejemplo, Firefox, simplemente ejecuta

pkill firefox o killall firefox según el comportamiento que desee: ¿Qué hay? la diferencia entre 'killall' y 'pkill'?

Si quiere ver qué procesos se están ejecutando, use el comando

ps -ef

Si desea buscar todos los procesos por bob de usuario, esto podría ayudar

pgrep -l -u bob

o

ps -ef | grep bob
    
respondido por el ste_kwr 17.02.2012 - 00:58
46

Usar sudo kill <pid> o sudo killall <process-name>

    
respondido por el Chris Wayne 17.02.2012 - 00:50
19

Probemos algo más:

sudo apt-get install htop 

El comando top es la forma tradicional de ver el uso de recursos de su sistema y ver los procesos que están ocupando la mayor cantidad de recursos del sistema. Arriba muestra una lista de procesos, con los que usan la mayor cantidad de CPU en la parte superior.

htop muestra la misma información con un diseño más fácil de entender. También le permite seleccionar procesos con las teclas de flecha y realizar acciones, como eliminarlas o cambiar su prioridad, con las teclas F .

    
respondido por el Fantomas 12.01.2014 - 05:41
14

Puedes usar

ps -ax | grep application name 

Si su búsqueda de firefox escribe en terminal como ps -ax | grep firefox , muestra la identificación del proceso de la aplicación correspondiente. Puede detener esa aplicación mediante el comando kill if process id = 1317,

kill -9 1317
    
respondido por el Xman Classical 22.07.2014 - 08:21
12

Usaría xkill . Ingrese xkill en una terminal y haga clic en la ventana, o ingrese xkill y la ID del proceso y se terminará.

Se descubrió más sobre xkill en x.org.

    
respondido por el Alvar 27.12.2013 - 22:36
7

Para intentar eliminar todos los procesos propiedad de un usuario username , ejecuta:

pkill -U username
    
respondido por el user129146 07.02.2013 - 03:30
5

Me gustaría dividir su problema en 2 partes:

1) ¿Cómo encuentro los procesos iniciados por mí? Ejecuta esto:

ps -u 'whoami'

El whoami es solo en caso de que no sepa el nombre de la cuenta que está utilizando, de lo contrario, simplemente escriba el nombre de la cuenta sin las comillas posteriores.

Esto mostrará una lista de todos los procesos que su cuenta puede eliminar.

2) El comando ps mostrará el número de proceso, el TTY, el Tiempo y CMD. El ID del proceso es la primera columna. Usa ese número para matar el proceso. Tenga cuidado al matar el proceso. Puede romper algo si mata el proceso incorrecto. Para matar un proceso, utilizará el comando kill , que envía una SEÑAL al proceso. La señal indica lo que el proceso debería hacer. Por ejemplo, al enviar un -1 al proceso, se le pedirá que vuelva a cargar el archivo de configuración; enviar un -2 es equivalente a presionar el Control + C en ese proceso; -9 hará que el kernel abandone el proceso, sin comunicarlo al proceso.

Supongamos que ps -u whoami devuelve algo así como

  PID TTY          TIME CMD
 4333 pts/1    00:00:00 fish
 4335 ?        00:00:00 fishd
 4816 ?        00:00:00 intellij
 4868 ?        00:50:42 java
 4939 ?        00:00:19 fsnotifier64
 7667 ?        02:49:08 firefox
 7698 ?        00:00:00 unity-webapps-s

Y quería matar el proceso firefox por su id de proceso, entonces lo haría:

kill -1 7667

Luego volvería a ejecutar el mismo comando ps y verificaría si el proceso aún se estaba ejecutando. Si todavía está ejecutándose, haz una

kill -2 7667

trabajando hasta llegar a -9 .

Para eliminar todos los procesos iniciados por su cuenta, ingrese kill <level> -1 . Lo mismo que antes: sube hasta -9 .

Si conoce el nombre del proceso, simplemente puede ir a killall <processname> , donde es lo que está intentando matar. Por ejemplo: killall fish (fish, en este sentido, es el Friendly Interactive SHell).

La documentación para killall se puede encontrar aquí: enlace

    
respondido por el Alexandre Santos 05.05.2015 - 01:37
2

... Todos los procesos en Linux responden a las señales. Las señales son una forma de os-level de decirle a los programas que rescindan o modifiquen su comportamiento.

Cómo enviar señales de procesos por PID

La forma más común de pasar señales a un programa es con el comando kill.

Como era de esperar, la funcionalidad predeterminada de esta utilidad es intentar matar un proceso:

kill PID_of_target_process

Esto envía la señal TERM al proceso. La señal TERM indica el proceso para finalizar. Esto permite que el programa realice operaciones de limpieza y salga sin problemas.

Si el programa se comporta mal y no sale cuando se le da la señal TERM, podemos escalar la señal pasando la señal KILL:

kill -KILL PID_of_target_process

Esta es una señal especial que no se envía al programa.

En cambio, se le da al kernel del sistema operativo, que apaga el proceso. Esto se usa para eludir programas que ignoran las señales que se les envían ...

    
respondido por el jackal404258 03.05.2015 - 02:00
2

Escribí un pequeño guión que escribí para matar (en mi caso) a Skype:

kill -s 9 'ps aux | grep skype | head -n 1 | cut -f4 -d" "'

Pero descubrí que, en la medida en que funcionó, no funcionó al día siguiente porque el pid tenía una longitud diferente y la cantidad de espacios era diferente

Luego encontré este sitio y probé

pgrep -l -u justin

que muestra cómodamente los procesos en el formato

[pid] [name]

Así que ajusté mi código en el guión a esto:

kill -s 9 'pgrep -l -u justin | grep skype | cut -f1 -d" "'

Lo que esto hace son las canalizaciones de todos los procesos justin se está ejecutando (que se puede cambiar a cualquier nombre de usuario) a grep que busca skype (esto se puede cambiar a su proceso) y luego canalizaciones que línea a cut que luego lee solo el PID y finalmente usa ese PID en el comando kill para matarlo.

    
respondido por el justingiffard 27.12.2013 - 22:10
2

Con esta aplicación puede ver listados de programas

install htop

sudo apt-get install htop

para ver el proceso y el proceso de matar Puede instalarlo y simplemente eliminar

    
respondido por el Reza Bojnordi 27.05.2017 - 14:21
0

Utilicé el siguiente procedimiento para matar un proceso en Ubuntu ::

Paso 1: Obtenga el pid del proceso usando grep o puede usar -C también ::

ps aux | -C 'filename'

o

ps -ef | -C 'filename'

o

ps aux | grep 'filename'

o

ps -ef | grep 'filename' 

Paso 2: anota el número pid.

Paso 3: use el comando 'kill' junto con el número pid como:

kill pidnumber
    
respondido por el harrypotter0 27.05.2017 - 13:46
0

Ctrl + Alt + Delete se puede configurar para darle acceso al administrador de tareas, desde donde es fácil matar procesos con un par de clics, y para mí, menos requisitos para recordar comandos que podrían ser perjudiciales si se hace incorrectamente:

enlace

    
respondido por el Cedric Eveleigh 27.05.2017 - 13:52
0

Aquí hay un script de Python simple que escribí, killProcess.py, que aceptará cualquier cosa como entrada y lo matará.

Escribí este script porque tengo muchos procesos de python o nodos que quiero eliminar de forma individual y programática. No puedo usar "killall python" porque detendrá los procesos que necesito seguir ejecutando.

Nombre el archivo "killProcess.py", luego agregue el nombre del script que desea detener. Por ejemplo, python killProcess.py runnablePoller.py matará el archivo runnablePoller.py

import os;
import sys;
for arg in sys.argv:
    if(arg!="killProcess.py"):
        process=arg;
        print(process);
processes =os.popen("ps -ef | grep "+process).read();
processes=processes.split("\n");
processes=processes[0].split(" ");
#print(processes);
for p in processes:
    try:
        pid=int(p);
        print(pid); 
        break;
    except:
        continue;

os.system("kill "+str(pid));
    
respondido por el nick carraway 18.06.2017 - 21:39

Lea otras preguntas en las etiquetas