¿Qué es Linux y lo que deberías saber?

Si quieres saber qué es Linux, te invitamos a leer este primer articulo que tenemos para tí.¿Crees que tu ordenador Linux se encargará automáticamente de todo por sí solo? A veces es posible que tenga que intervenir directamente.

La gestión por procesos es un buen ejemplo de ello. Linux crea un proceso cada vez que se lanza un programa, ya sea por usted o por Linux. Este proceso es un contenedor de información sobre cómo se está ejecutando el programa y qué está sucediendo.

Si el proceso se ejecuta y termina correctamente, entonces todo está bien; sin embargo, si acapara la CPU, o se niega a ir cuando su tiempo se acaba, entonces los comandos de Linux descritos a continuación pueden ayudarle a restaurar la ley y el orden.

Comencemos con una lista de cosas que puede querer hacer cuando administre procesos de Linux:

    Ver qué procesos se están ejecutando

    Vea qué parte de su sistema Linux están usando los procesos (especialmente los codiciosos)

    Localizar un proceso en particular para ver lo que está haciendo o para tomar medidas al respecto.

    Definir o cambiar el nivel de prioridad asociado con ese proceso

    Terminar el proceso si ha sobrevivido a su utilidad o si se está portando mal.

Los comandos que se describen a continuación deben introducirse a través de la interfaz de línea de comandos. Simplemente abra una ventana de terminal (de texto completo) para acceder a esta interfaz. Puede parecer básico, pero en realidad es muy potente y flexible – justo lo que necesita para mantener todos esos procesos en línea.

1. arriba

El comando superior le proporciona información sobre los procesos que existen actualmente. Como muestra el resultado de la muestra anterior, la primera parte de la información es una visión general de la situación.

La segunda parte, organizada en columnas, da detalles de cada proceso, incluyendo su número de referencia único (PID), prioridad (PR), estado (S) y uso de recursos (%CPU, por ejemplo).

2. htop

El comando htop es como top, pero más bonito e inteligente. La información se presenta en un formato más claro, y puede seleccionar un proceso en particular (utilice las teclas de flechas) y luego actuar sobre él (utilice las teclas F1, F2, etc.) con la pantalla táctil.

Entonces, ¿por qué alguien usaría algo que no sea htop? Simplemente porque htop no siempre está disponible por defecto en sistemas Linux (mientras que top siempre está disponible).

Es posible que tenga que realizar un paso de instalación adicional antes de poder utilizarlo. Su instrucción de instalación será sudo apt-get install htop si está usando Ubuntu o Debian, por ejemplo.

Los colores que utiliza htop en su pantalla ayudan a transmitir su mensaje.

Las barras de CPU y memoria pueden mostrar barras azules para los procesos de baja prioridad, verdes para la prioridad normal o rojas para el núcleo. El amarillo corresponde al tiempo IRQ (solicitud de interrupción), el magenta al tiempo IRQ suave y el gris al tiempo de espera de E/S (entrada/salida).

El promedio de carga representa el grado en que la CPU se mantiene ocupada. Una cifra de «1,0» corresponde a un 100 por ciento de ocupación. La cifra de «0,37» en la captura de pantalla que se muestra a continuación corresponde al 37 por ciento.

Este es el promedio de carga en el último minuto. Las otras dos cifras de carga promedio son los promedios de carga de los últimos cinco y los últimos 15 minutos, respectivamente.

 3. p

Utilice el comando ps para listar los procesos en ejecución (top y htop listan todos los procesos activos o inactivos). Sin embargo, deberá especificar una u otra opción para obtener información útil.

El comando ps -a listará todos los procesos de su sistema. El comando ps -a | grep mysqld seleccionaría entonces el proceso mysqld si, por ejemplo, tuviera una conexión a través del sistema con una base de datos MySQL.

4. pstree

Un paso por encima del simple comando ps, pstree se utiliza para mostrar un diagrama de árbol de procesos que también muestra las relaciones que existen entre ellos.

Cada proceso es generado, o engendrado, por otro proceso (un proceso padre) en Linux. Lo que es importante saber es que si altera algo en un proceso padre, también afecta a los procesos hijo.

En particular, si usted detiene al padre, usted detiene automáticamente a los niños!

5. quién

El comando who mostrará una lista de todos los usuarios que actualmente están conectados a su sistema Linux. Si eso es sólo para usted y para el sistema operativo en sí, entonces tiene libertad para administrar los procesos como desee.

Por otro lado, si otros usuarios (humanos) también están conectados, tenga cuidado antes de alterar o terminar procesos que puedan ser importantes para ellos.

También puede utilizar el comando users para obtener información más sencilla, el comando whoami para decirle quién es usted (tal y como lo percibe el sistema) y el comando w, que le proporciona no sólo los nombres de los usuarios, sino también información sobre lo que están haciendo en ese momento.

6. matar

Como su nombre lo indica, matar puede ser usado para terminar un proceso con extremo prejuicio. Aunque en un sentido más general, su función es enviar señales (una de las cuales es «¡muere!»).

Le permite detener procesos individuales o grupos de procesos sin tener que detener o reiniciar completamente su sistema Linux – algo que otros usuarios también pueden apreciar.

Supongamos que tu proceso mysqld se está comportando mal. Como usted sabe por su pantalla superior, este proceso (en nuestro ejemplo anterior) tiene un PID de 5979. Para finalizar este proceso, puede escribir:

matar 5979

Si por alguna razón esto no es suficiente, hay opciones más agresivas disponibles. Un ejemplo sería la opción -9 (también conocida como -KILL):

matar -9 5979

O

kill -KILL 5979

Si no conoces el PID o quieres tomar un atajo (sólo asegúrate de que sea el correcto), el comando killall te permitirá terminar todas las instancias de un proceso con el mismo nombre. Para matar todos los procesos llamados mysqld, por ejemplo, escriba:

killall -9 mysqld

Si matar parece demasiado poco amistoso, tal vez quieras intentar primero ser «amable». El comando nice le permite definir la prioridad de un proceso antes de ejecutarlo (use renice para un proceso que ya se está ejecutando).

Conclusión

Los comandos descritos anteriormente son sólo una pequeña parte de todo lo que la interfaz de línea de comandos tiene que ofrecer.

Puede dividir y dividir su gestión de procesos de Linux de innumerables maneras, gracias a las diferentes opciones de comandos y a la capacidad de combinar varios comandos a la vez.

Al probarlos usted mismo, verá qué comandos son los más útiles para usted. Sólo recuerde pensar en su efecto antes de ponerlos en acción.