Cómo ver procesos en Linux
Si estás usando un servidor Linux, es importante que sepas cómo ver y administrar los procesos que se están ejecutando. Saber cómo ver los procesos te permitirá monitorear el rendimiento de tu servidor y administrar los procesos para asegurarte de que estén funcionando correctamente.
Hay varios comandos que puedes utilizar para ver los procesos en Linux. En esta guía, te explicamos cómo utilizar los siguientes comandos:
- Comando ‘top‘: El comando ‘top‘ te permite ver los procesos en tiempo real y ordenarlos en función de diferentes criterios. Para usar este comando, simplemente abre una terminal y escribe ‘top’. A continuación, se muestra un ejemplo de salida del comando ‘top’:
top - 11:27:23 up 4:27, 1 user, load average: 0.03, 0.05, 0.01
Tasks: 89 total, 1 running, 88 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.5 us, 0.5 sy, 0.0 ni, 98.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7871.6 total, 2649.6 free, 2711.6 used, 1510.4 buff/cache
MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 4534.4 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1057 root 20 0 233848 27804 16272 S 1.7 0.4 4:07.32 Xorg
1862 jdoe 20 0 1905880 162616 96440 S 1.0 2.0 0:49.11 gnome-shell
2305 jdoe 20 0 1238908 84196 50700 S 0.7 1.0 0:15.84 firefox
1071 root 20 0 37308 6140 4884 S 0.3 0.1 0:32.18 at-spi-bus-laun
1195 jdoe 20 0 108772 8584 7360 S 0.3 0.1 0:01.18 dbus-daemon
La salida anterior muestra información importante como el uso de la CPU, la memoria, la identificación del proceso y el comando que se está ejecutando. Además, se puede ver el ID del proceso, el usuario que lo inició, el estado y el uso de recursos.
Otro comando útil para ver y controlar procesos en Linux es ‘top’. ‘top’ muestra una lista actualizada en tiempo real de los procesos en ejecución en su sistema, ordenados por uso de recursos, como el uso de CPU y memoria. ‘top’ es una herramienta poderosa y versátil que proporciona información detallada sobre los procesos en ejecución en su sistema.
Para ejecutar ‘top’, simplemente abra una ventana de terminal y escriba el comando ‘top’. Esto mostrará una lista en tiempo real de los procesos en ejecución en su sistema, ordenados por uso de CPU. Puede presionar la tecla ‘q’ en cualquier momento para salir de ‘top’.
Además, es posible usar opciones de línea de comandos con ‘top’ para personalizar su salida. Por ejemplo, puede usar la opción ‘-d’ para establecer el tiempo de actualización de ‘top’ en segundos. Por ejemplo, para actualizar ‘top’ cada 5 segundos, puede ejecutar el siguiente comando:
top -d 5
También es posible ordenar la lista de procesos en ‘top’ por otros campos, como uso de memoria o tiempo de CPU, utilizando las teclas de flecha hacia arriba y hacia abajo.
- Comando ‘ps’: El comando ‘ps’ te permite ver información detallada sobre los procesos que se están ejecutando. Puedes usar diferentes argumentos con el comando ‘ps’ para filtrar los procesos según tus necesidades. Por ejemplo, para ver todos los procesos del sistema, escribe ‘ps -ef’. A continuación, se muestra un ejemplo de salida del comando ‘ps’:
PID TTY TIME CMD
1 ? 00:00:04 systemd
2 ? 00:00:00 kthreadd
3 ? 00:00:00 rcu_gp
4 ? 00:00:00 rcu_par_gp
6 ? 00:00:00 kworker/0:0H-kb
9 ? 00:00:00 mm_percpu_wq
10 ? 00:00:00 ksoftirqd/0
11 ? 00:00:02 rcu_sched
12 ? 00:00:00 migration/0
13 ? 00:00:00 idle_inject/0
14 ? 00:00:00 cpuhp/0
15 ? 00:00:00 kdevtmpfs
16 ? 00:00:00 netns
17 ? 00:00:00 rcu_tasks_kthre
18 ? 00:00:00 kauditd
19 ? 00:00:00 khungtaskd
20 ? 00:00:00 oom_reaper
21 ? 00:00:00 writeback
22 ? 00:00:00 kcompactd0
23 ? 00:00:00 ksmd
24 ? 00:00:00 khugepaged
25 ? 00:00:00 crypto
26 ? 00:00:00 kintegrityd
27 ? 00:00:00 kblockd
28 ? 00:00:00 ata_sff
29 ? 00:00:00 md
30 ? 00:00:00 edac-poller
31 ? 00:00:00 devfreq_wq
32 ? 00:00:00 watchdogd
33 ? 00:00:00 kswapd0
34 ? 00:00:00 vmstat
35 ? 00:00:00 nfsiod
36 ? 00:00:00 kthrotld
37 ? 00:00:00 ipv6_addrconf
38 ? 00:00:00 kstrp
41 ? 00:00:00 kworker/u17:0
43 ? 00:00:00 kworker/0:1H-kb
46 ? 00:00:00 kworker/u16:1
70 ? 00:00:00 kworker/u17:2
72 ? 00:00:00 kworker/0:2-events
103 ? 00:00:00 kworker/0:1-events
110 ? 00:00:00 kworker/u16:2
111 ? 00:00:00 kworker/u16:3
112 ? 00:00:00 kworker/u17:1
146 ? 00:00:00 jbd2/sda1-8
La salida anterior muestra una lista de procesos en ejecución en el sistema Linux, donde cada fila representa un proceso y sus detalles. La columna PID indica el ID de proceso, y CMD indica el nombre del comando que inició el proceso.
Es posible que la salida completa de ‘ps‘ sea larga y difícil de leer, por lo que puede ser útil agregar algunas opciones para limitar y filtrar la salida. A continuación se muestran algunas opciones útiles que se pueden usar con ‘ps‘:
- ‘ps aux‘: esta opción muestra una lista de todos los procesos en ejecución en el sistema, incluidos los procesos del sistema y los de los usuarios.
- ‘ps -u <username>‘: esta opción muestra una lista de procesos en ejecución para un usuario en particular.
- ‘ps -ef‘: esta opción muestra una lista de procesos en ejecución en el sistema, incluyendo información detallada como el usuario que inició el proceso, el tiempo de inicio del proceso y la línea de comando completa utilizada para iniciar el proceso.
- ‘ps -e –forest‘: esta opción muestra una lista jerárquica de procesos en formato de árbol, lo que puede ser útil para ver las relaciones entre los procesos.
Además de ‘ps’, existe otro comando que puede ser útil para monitorear procesos en Linux: ‘top’. Este comando muestra una lista en tiempo real de los procesos en ejecución en el sistema, con información sobre el uso de la CPU y la memoria. También permite a los usuarios realizar acciones en los procesos, como enviar señales para detener o reiniciar un proceso.
Otra opción útil para filtrar la salida de ‘ps’ es el comando ‘grep’. ‘grep’ se utiliza para buscar y filtrar patrones en la salida de ‘ps’. Por ejemplo, si solo desea ver procesos relacionados con un servidor web Apache, puede ejecutar el siguiente comando:
ps aux | grep apache
Este comando buscará en la salida de ‘ps’ cualquier línea que contenga la palabra «apache» y mostrará solo los procesos relacionados con Apache.
Además, es posible que desee ordenar la salida de ‘ps’ por algún campo específico, como el uso de la CPU o la memoria. Puede hacer esto agregando la opción ‘-o’ seguida del nombre de la columna que desea ordenar. Por ejemplo, para ordenar la salida de ‘ps’ por uso de CPU, puede ejecutar el siguiente comando:
ps aux --sort=-%cpu
Este comando mostrará una lista de procesos en ejecución ordenados por uso de CPU, con los procesos que utilizan más CPU en la parte superior.
Por último, si está conectado a un servidor remoto a través de SSH y desea ver los procesos en ejecución en ese servidor, puede ejecutar los mismos comandos de ‘ps’ y ‘top’ en la terminal SSH. La salida se mostrará en la terminal local, lo que le permitirá monitorear los procesos en tiempo real desde cualquier lugar.
Como terminar procesos
Para terminar un proceso en Linux, es posible usar el comando ‘kill’. ‘kill’ envía una señal a un proceso especificado para solicitar su finalización. Por defecto, ‘kill’ envía la señal SIGTERM al proceso, lo que le da al proceso la oportunidad de finalizar de manera ordenada antes de ser forzado a cerrarse. Si el proceso no responde a la señal SIGTERM, es posible enviar la señal SIGKILL con la opción ‘-9’, que finaliza el proceso inmediatamente.
Para usar ‘kill’, primero debe obtener el PID del proceso que desea terminar. Puede hacer esto ejecutando el comando ‘ps’ y buscando el proceso que desea terminar. Una vez que tenga el PID, puede ejecutar el comando ‘kill’ seguido del PID para terminar el proceso. Por ejemplo, si desea terminar el proceso con PID 1234, puede ejecutar el siguiente comando:
kill 1234
Si desea enviar la señal SIGKILL al proceso en lugar de la señal SIGTERM predeterminada, puede agregar la opción ‘-9’ al comando ‘kill’. Por ejemplo, si desea enviar la señal SIGKILL al proceso con PID 1234, puede ejecutar el siguiente comando:
kill -9 1234
También es posible terminar varios procesos a la vez mediante el uso de comandos de búsqueda y ‘kill’. Por ejemplo, si desea terminar todos los procesos de Apache en ejecución, puede usar el comando ‘ps’ y ‘grep’ para encontrar los procesos de Apache y luego enviar la señal SIGTERM o SIGKILL a todos ellos. Por ejemplo, para enviar la señal SIGTERM a todos los procesos de Apache en ejecución, puede ejecutar el siguiente comando:
ps aux | grep apache | awk '{print $2}' | xargs kill
Este comando busca todos los procesos de Apache en ejecución utilizando ‘ps’ y ‘grep’, luego usa ‘awk’ para imprimir solo la columna del PID y ‘xargs’ para enviar la señal SIGTERM a cada proceso.
Conclusión
En conclusión, ver y controlar procesos en Linux es una tarea esencial para cualquier usuario de Linux, especialmente para aquellos que trabajan con servidores. Los procesos son una parte fundamental del sistema operativo Linux, y monitorearlos puede ayudar a identificar problemas de rendimiento y solucionarlos de manera efectiva.
En este tutorial, hemos cubierto algunos de los comandos más útiles para ver y controlar procesos en Linux, como ‘ps’, ‘top’ y ‘htop’. Además, también discutimos cómo se puede usar SSH para conectarse a un servidor remoto y ver los procesos que se ejecutan en él.
Ahora que ha aprendido cómo ver procesos en Linux, le recomendamos que experimente con estos comandos por su cuenta y vea cómo puede personalizar la salida y la información que proporcionan. Estas habilidades son valiosas para cualquier administrador de sistemas Linux y pueden ser utilizadas para mejorar la productividad y solucionar problemas con mayor eficacia en cualquier entorno de Linux.
Si tienes alguna duda no dudes en contactar al copywriter en instagram o escribiéndonos un ticket de soporte