Cómo ver procesos en Linux

Cómo ver procesos en Linux

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:

  1. Comando ‘top‘: El comando ‘topte 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.

  1. 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

    Juan Leonardo