Comandos básicos de Linux relacionados con los procesos

Cada vez que ejecutamos una aplicación, como mínimo, estará corriendo un proceso en el sistema operativo que realiza las funciones programadas en esa aplicación o que le estamos ordenando desde la interfaz de usuario.

Dentro de la estructura de ejecución de un proceso hay tres elementos importantes que debemos conocer:

  • PID (Process ID): Es un identificador numérico único para cada proceso.
  • PPID (Process Parent ID): El identificador del proceso padre.
  • UID (User ID): Identificador único del usuario propietario del proceso.
  • GID (Group ID): Identificador del grupo propietario del proceso.

Los sistemas Linux están pensados para ser multitarea, multihilo y multiusuario para aprovechar al máximo la tecnología de los procesadores actuales. Esto significa que podemos ejecutar más de un proceso al mismo tiempo, utilizando más de un núcleo del procesador y por diferentes usuarios.

A continuación, voy a explicar algunos de los comandos más básicos de Linux para tratar con los procesos.

Mirar qué procesos están corriendo

Utilizaremos el comando ps y sus diferentes parámetros, según lo que queramos mirar. Si ejecutamos «man ps» veremos para qué sirve cada parámetro.

  • Mirar todos los procesos que se están ejecutando en el sistema: ps -ef
  • Mirar todos los procesos que está ejecutando un usuario: ps -fu usuario
  • Filtrar algunas de las columnas de ps:  ps -eopid,tt,user,fname,tmout,f,wchan

Ejemplo:

# ps -flU usuario1 
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 
4 S usuario1 5083 5082 0 80 0 - 22179 wait 11:45 pts/1 00:00:00 -bash 
0 R usuario1 5118 5083 0 80 0 - 22134 - 11:45 pts/1 00:00:00 ps -f
#

El significado de cada una de las columnas es:

UID → Propietario del proceso.
PID → ID del proceso.
PPID → ID del proceso padre.
C → Cantidad de recursos de CPU que el proceso ha utilizado recientemente para que el kernel (núcleo del sistema operativo) establezca la prioridad apropiada a cada proceso.
PRI → Prioridad del proceso.
NI → Valor nice. Un valor positivo indica menor tiempo de CPU.
STIME → Hora de comienzo del proceso.
TTY → Terminal asociado al proceso.
TIME → Tiempo de CPU asociado al proceso.
CMD → Comando ejecutado.

Revisar el consumo de CPU y memoria de cada proceso en tiempo real

Utilizaremos el comando «top».

# top
top - 16:52:53 up 21 days, 21:35, 1 user, load average: 0.02, 0.08, 0.08
Tasks: 93 total, 1 running, 92 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1014736 total, 149260 free, 558436 used, 307040 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 205908 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
 1 root 20 0 43248 3128 1952 S 0.0 0.3 0:10.99 systemd
 2 root 20 0 0 0 0 S 0.0 0.0 0:00.08 kthreadd
 3 root 20 0 0 0 0 S 0.0 0.0 0:05.11 ksoftirqd/0
 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
 7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
 9 root 20 0 0 0 0 S 0.0 0.0 2:34.89 rcu_sched
 10 root rt 0 0 0 0 S 0.0 0.0 0:08.40 watchdog/0
 12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
 13 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns
 14 root 20 0 0 0 0 S 0.0 0.0 0:00.01 xenwatch
 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 xenbus
 17 root 20 0 0 0 0 S 0.0 0.0 0:00.30 khungtaskd
 18 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback

Para ordenar los procesos que más memoria consumen, utilizaremos el siguiente comando:

# ps -e -o vsz=Kbytes -o ruser -o pid,args=Command-Line | sort -rnk1 | more
644584 puerto53 10013 httpd -f /app/puerto53/httpd/conf/httpd.conf -k start -D SSL
643768 puerto53 19412 httpd -f /app/puerto53/httpd/conf/httpd.conf -k start -D SSL
642648 puerto53 15740 httpd -f /app/puerto53/httpd/conf/httpd.conf -k start -D SSL
640556 puerto53 10937 httpd -f /app/puerto53/httpd/conf/httpd.conf -k start -D SSL
637536 puerto53 21861 httpd -f /app/puerto53/httpd/conf/httpd.conf -k start -D SSL
636416 puerto53 15040 httpd -f /app/puerto53/httpd/conf/httpd.conf -k start -D SSL
634840 puerto53 9998 httpd -f /app/puerto53/httpd/conf/httpd.conf -k start -D SSL
621788 puerto53 21859 httpd -f /app/puerto53/httpd/conf/httpd.conf -k start -D SSL
621072 puerto53 19411 httpd -f /app/puerto53/httpd/conf/httpd.conf -k start -D SSL
607532 puerto53 15467 httpd -f /app/puerto53/httpd/conf/httpd.conf -k start -D SSL
562388 root 810 /usr/bin/python -Es /usr/sbin/tuned -l -P
534132 polkitd 550 /usr/lib/polkit-1/polkitd --no-debug
505752 puerto53 17662 httpd -f /app/puerto53/httpd/conf/httpd.conf -k start -D SSL
263152 root 552 /usr/sbin/rsyslogd -n
201256 root 544 /usr/sbin/gssproxy -D
195584 root 21937 sudo su -
187536 root 21938 su -
151064 root 21956 ps -e -o vsz=Kbytes -o ruser -o pid,args=Command-Line
145700 root 21915 sshd: centos [priv]
145700 centos 21917 sshd: [email protected]/0
126264 root 1015 /usr/sbin/crond -n
118848 root 398 /usr/sbin/lvmetad -f
115640 chrony 539 /usr/sbin/chronyd

Matar un proceso

A veces los procesos tienen algún error y la aplicación no es capaz de finalizar por sí sola. En ese caso, podemos utilizar el comando «kill PID» para matar el proceso relacionado con esa aplicación.

# kill -9 4997

Capturar la señal de finalización de un proceso

Nos puede ser útil para la creación de scripts. Por ejemplo, si el proceso acaba bien haz una tarea pero si acaba mal haces otra cosa.

# cat trap.sh 
#!/bin/sh 
echo Capturador de señales: trap 'echo señal SIGNINT recibida' 2; 
while true 
do 
 : 
done 
#

# ./trap.sh Capturador de señales: 
^Cseñal SIGINT recibida

El mensaje señal SIGINT recibida lo vemos al presionar Control-C (señal 2).

Modificar la prioridad de ejecución de un proceso (nice)

La prioridad de un proceso se mide del uno al 19, siendo el 19 el menos prioritario. Por defecto, un proceso se ejecuta con prioridad 10, pero podemos forzarla o cambiarla:

# nice -7 proceso

# renice -n 20 20699
20699: old priority 4, new priority 20
#

Saber cuánto tiempo tarda en ejecutarse un proceso

El comando «time proceso» mide el tiempo de ejecución de un proceso, mostrando las estadísticas de rendimiento al acabar.

# time ls
anaconda-ks.cfg original-ks.cfg

real 0m0.004s
user 0m0.000s
sys 0m0.001s
[[email protected] ~]#

Lanzar procesos en background

Seguramente nos interesará lanzar procesos en segundo plano cuando la duración del mismo sea elevada como, por ejemplo, un batch de nóminas, o se nos pueda cortar nuestra conexión al terminal por problemas en nuestra red.

Para hacerlo, ejecutaremos:

nohup proceso &

Tras la ejecución de este comando conseguiremos tres cosas:

  • El proceso se ejecuta en segundo plano.
  • Nos devuelve el prompt del sistema para que sigamos utilizando nuestra terminal.
  • Si salimos de la sesión o se nos corta, el proceso seguirá ejecutandose hasta que finalice.

Ejemplo:

# ls > prueba.txt & 
[1] 8788 
# ps -ef |grep 8788 usuario1 8790 8754 2 10:05 pts/0 00:00:00 grep 8788 
[1]+ Done ls --color=auto > prueba.txt 
# cat prueba.txt 
contactos letras otro_directorio 
prueba.txt 
#

Planificación de tareas con cron

crond es el demonio (o servicio de sistema que se ejecuta en segundo plano) que se encarga de revisar el fichero de cron de todos los usuarios para ejecutar cada una de las tareas en la fecha y hora programadas.

Este sistema es muy útil para ejecutar tareas periódicamente o, incluso, para no tener que activarlas manualmente a horas indecentes.

Con el comando «crontab -e» editaremos nuestro fichero de configuración de cron, siempre que el administrador del sistema operativo nos lo haya permitido:

[[email protected] ~]# cat /etc/cron.allow
puerto53
[[email protected] ~]#

La sintaxis de cron la podremos consultar con «man crontab» si tenemos alguna duda, pero es realmente sencillo de entender:

minuto hora días mes días_semana comando

Ejemplo:

[[email protected] puerto53]$ crontab -l
# Copias de seguridad del codigo HTML
00 03 1,8 * 1 /app/puerto53/scripts/Backups/backup.sh > /dev/null 2>&1
[[email protected] puerto53]$

Te puede interesar

¿Te ha gustado? ¡Compártelo!

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

SUSCRÍBETE A PUERTO53

Recibe un email periódico con los artículos más interesantes de Puerto53.com

Antes de suscribirte lee los términos y condiciones. Gracias.

Contenido Relacionado

Este es un blog de informática. ¿Qué necesita un informático?

Portátiles

Rebajas
Lenovo S145-15IIL - Ordenador portátil 15.6" FullHD (Intel Core i5-1035G1, 8GB RAM, 512GB...
  • Pantalla de 15.6" FullHD 1920x1080 pixeles 220nits Anti-glare
  • Procesador Intel Core I5-1035G1, QuadCore, 1.0-3.6GHz
  • Memoria RAM de 4GB Soldered + 4GB DIMM DDR4-2666
Lenovo S145-15AST - Ordenador portátil 15.6" FullHD (AMD A9-9425, 8GB de RAM, 512GB SSD,...
  • Pantalla de 15,6"fullhd 1920x1080 pixeles
  • Procesador amd a9-9425, dualcore 3.1ghz hasta 3.7ghz, 1m
  • Memoria ram de 8gddr4, 2133mhz
Rebajas
HP 15s-eq0004ns - Ordenador portátil de 15.6" HD (AMD Ryzen 3 3200U, 8 GB RAM, 256 GB,...
  • Procesador AMD Ryzen 3 3200U (2 núcleos, 5 MB de Caché, 2.6 GHz hasta 3.5 GHz)
  • Memoria RAM de 8 GB DDR4, 2400 MT/s
  • Disco SSD de 256 GB PCIe NVMe M.2
Rebajas
Lenovo S145-15AST- Ordenador portátil 15.6" FullHD (AMD A9-9425, 8GB RAM, 256GB SSD, AMD...
  • Pantalla de 15.6" FullHD 1920x1080 pixeles 220nits Anti-glare
  • Procesador AMD A9-9425, DualCore, 3.1GHz-3.7GHz
  • Memoria RAM de 8GB DIMM DDR4, 2133Mhz

Monitores PC

HP 22w - Monitor 21.5" (Full HD, 1920 x 1080 pixeles, tiempo de respuesta de 5 ms, 1 x...
  • Regálale a tu escritorio un toque de elegancia
  • Esta pantalla IPS de 53.61 cm (21,5 pulgadas) en diagonal dispone de 178 ángulos de visualización para ofrecer una experiencia de entretenimiento...
  • Con los puertos VGA y HDMI, esta pantalla hace que conectar tu ordenador portátil o pc de sobremesa sea una tarea sencilla y fluida
Rebajas
Samsung LC24F390FHU - Monitor para PC Desktop de 24'' (1920 x 1080 pixeles, Full HD, HD...
  • Pantalla de 24 pulgadas con una resolución de 1920 x 1080 píxeles
  • Brillo de pantalla: 250 cd / m²
  • Interfaz de montaje VESA 75 x 75 mm
Rebajas
BenQ GW2470HL - Monitor para PC Desktop de 23.8" Full HD (1920x1080, VA, 16:9, 2x HDMI,...
  • Los niveles ajustables de baja luz azul eliminan la luz azul peligrosa y mantienen la luz beneficiosa para una comodidad de visualización prolongada
  • Disfruta de gráficos nítidos con una resolución de 1920 x 1080
  • Minimiza las distracciones y crea una configuración de varios paneles con monitores de bisel estrecho

NAS

Rebajas
Western Digital My Cloud Home - Almacenamiento En Red NAS de 3 TB, 1 Bahía, Blanco y...
  • Configuración sencilla y rápida desde el teléfono
  • Acceso desde cualquier lugar con la aplicación para móviles o para ordenadores de My Cloud Home, o bien desde MyCloud.com
  • Copia de seguridad automática de las fotos y los vídeos del teléfono
Synology Diskstation DS218+ - Memoría externa DS218+ NAS 2bay
  • Procesador de doble núcleo con aceleración de cifrado AES-NI
  • No lleva disco
  • Admite la transcodificación 4K en tiempo real
Synology DS218J Diskstation
  • A versatile entry-level 2-bay NAS for home and personal cloud storage
  • Over 113 MB/s reading, 112 MB/s writing
  • Dual-core CPU with hardware encryption engine
Synology diskstation ds120j.
  • Almacenamiento de 1 bahía fácil de usar en una nube personal para usuarios de nas inexpertos
  • Rendimiento secuencial más de 112 mb/s de lectura, 106 mb/s de escritura
  • Plataforma para compartir archivos y sincronización entre dispositivos

Deja un comentario

About Author