En Linux, una instancia de un servicio, aplicación o secuencia de comandos en ejecución se denomina proceso. Cuando ejecuta cualquier comando, programa o aplicación, se crea un proceso para él. Cada proceso tiene su propia identificación de proceso que está asociada con un usuario y grupo específicos. Si algún proceso consume demasiados recursos o deja de responder, es posible que deba eliminarlo. En este caso, puede usar el comando kill para detener el proceso sin reiniciar su servidor.
En esta publicación, le mostraremos cómo eliminar los procesos en ejecución en Linux.
Requisitos
- Un servidor que ejecuta Linux en Atlantic.Net Cloud Platform
- Una contraseña de root configurada en su servidor
Crear servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo cualquier sistema operativo Linux con al menos 1 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Ver procesos en ejecución en Linux
La forma más sencilla y fácil de obtener una lista de todos los procesos en ejecución es usar el comando superior. Puede ejecutar el comando superior como se muestra a continuación para enumerar todos los procesos en ejecución:
top
Obtendrá todos los procesos en ejecución en el siguiente resultado:
Tasks: 344 total, 1 running, 297 sleeping, 0 stopped, 0 zombie %Cpu(s): 22.6 us, 6.0 sy, 0.1 ni, 67.1 id, 3.9 wa, 0.0 hi, 0.4 si, 0.0 st KiB Mem : 7580260 total, 2103076 free, 3174408 used, 2302776 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 3901388 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 5994 vyom 20 0 44344 4160 3444 R 11.8 0.1 0:00.03 top 2206 vyom 20 0 1046476 89792 60368 S 5.9 1.2 1:15.26 Xorg 2359 vyom 20 0 3471324 216412 97596 S 5.9 2.9 1:58.27 gnome-shell 2745 vyom 20 0 1776552 136144 99424 S 5.9 1.8 1:09.93 skypeforlinux 2775 vyom 20 0 37.371g 169524 117660 S 5.9 2.2 1:05.09 skypeforlinux 5655 root 20 0 0 0 0 I 5.9 0.0 0:00.30 kworker/u8:3-ev 1 root 20 0 160356 9464 6632 S 0.0 0.1 0:03.50 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp 6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-kb 9 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq 10 root 20 0 0 0 0 S 0.0 0.0 0:00.40 ksoftirqd/0 11 root 20 0 0 0 0 I 0.0 0.0 0:03.58 rcu_sched 12 root rt 0 0 0 0 S 0.0 0.0 0:00.01 migration/0 13 root -51 0 0 0 0 S 0.0 0.0 0:00.00 idle_inject/0 14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1 16 root -51 0 0 0 0 S 0.0 0.0 0:00.00 idle_inject/1
Puede presionar k e ingresar la ID del proceso para eliminar el proceso directamente desde la interfaz superior.
Encuentre el proceso usando el comando ps
ps es una utilidad de línea de comandos que mostrará una lista completa de los procesos en ejecución en el formato especificado.
La sintaxis básica del comando ps se muestra a continuación:
ps [OPTION]
A continuación se muestra una breve explicación de cada opción:
- -a:muestra los procesos en ejecución de todos los usuarios.
- -u:muestra información detallada sobre cada uno de los procesos.
- -x:muestra los procesos controlados por el daemon.
Por ejemplo, ejecute el siguiente comando para obtener una lista detallada de todos los procesos.
ps aux
Obtendrá el siguiente resultado:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.1 0.1 160356 9464 ? Ss 15:51 0:03 /sbin/init splash root 2 0.0 0.0 0 0 ? S 15:51 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? I< 15:51 0:00 [rcu_gp] root 4 0.0 0.0 0 0 ? I< 15:51 0:00 [rcu_par_gp] root 6 0.0 0.0 0 0 ? I< 15:51 0:00 [kworker/0:0H-kb] root 9 0.0 0.0 0 0 ? I< 15:51 0:00 [mm_percpu_wq] root 10 0.0 0.0 0 0 ? S 15:51 0:00 [ksoftirqd/0] root 11 0.1 0.0 0 0 ? I 15:51 0:03 [rcu_sched] root 12 0.0 0.0 0 0 ? S 15:51 0:00 [migration/0] root 13 0.0 0.0 0 0 ? S 15:51 0:00 [idle_inject/0] root 14 0.0 0.0 0 0 ? S 15:51 0:00 [cpuhp/0] root 15 0.0 0.0 0 0 ? S 15:51 0:00 [cpuhp/1] root 16 0.0 0.0 0 0 ? S 15:51 0:00 [idle_inject/1] root 17 0.0 0.0 0 0 ? S 15:51 0:00 [migration/1] root 18 0.0 0.0 0 0 ? S 15:51 0:00 [ksoftirqd/1] root 20 0.0 0.0 0 0 ? I< 15:51 0:00 [kworker/1:0H-kb] root 21 0.0 0.0 0 0 ? S 15:51 0:00 [kdevtmpfs] root 22 0.0 0.0 0 0 ? I< 15:51 0:00 [netns]
El comando anterior le mostrará todos los procesos en ejecución. Puede usar el comando grep con el comando ps para obtener un PID de un proceso específico.
Por ejemplo, para obtener un PID de un proceso de Apache, ejecute el siguiente comando:
ps aux | grep apache
Obtendrá el siguiente resultado:
root 1309 0.0 0.0 73992 4748 ? Ss 15:52 0:00 /usr/sbin/apache2 -k start www-data 1310 0.0 0.0 1285068 4620 ? Sl 15:52 0:00 /usr/sbin/apache2 -k start www-data 1311 0.0 0.0 1285068 4644 ? Sl 15:52 0:00 /usr/sbin/apache2 -k start
También puedes usar el pidof comando para obtener un PID de un proceso específico.
pidof apache2
Obtendrá el siguiente resultado:
1311 1310 1309
Eliminar un proceso en Linux
En este punto, ya sabe cómo obtener el PID de cualquier proceso. Ahora, puede usar el comando matar para matar un proceso en ejecución.
Para eliminar un solo proceso, ejecute el siguiente comando:
kill PID
O
kill -9 PID
Para eliminar varios procesos, ejecute el siguiente comando:
kill -9 PID1 PID2 PID3
También puede eliminar los procesos por sus nombres. Puedes usar el pkill comando para matar un proceso por su nombre.
Para eliminar el proceso de Apache, ejecute el siguiente comando:
pkill apache2
También puedes usar el killall comando para matar un proceso por su nombre:
killall mysqld
Conclusión
En esta publicación, explicamos cómo encontrar y eliminar un proceso en Linux. Ahora puede eliminar cualquier proceso que no responda por sí mismo sin reiniciar su servidor. ¡Pruébelo en alojamiento VPS de Atlantic.Net!