Procesos Linux
index | OSiUX | blog | docs | charlas | rss
¿Qué es proceso?
- Un proceso es la instancia de un programa en ejecución.
- También se lo conoce como tarea.
¿Por qué?
- GNU/Linux es un sistema multitarea, permite la ejecución de múltiples procesos al mismo tiempo.
- Comprender el concepto de procesos nos permite administrar el rendimiento de nuestro equipo.
Lo que el usuario ve:
Lo que el sistema ve:
PID
- Todo proceso que se inicia tiene un número asignado llamado PID.
- Este PID permite identificar el proceso y administrarlo (detenerlo, reanudarlo etc…)
Ejemplo: Para obtener el PID de un proceso podemos usar el comando
pidof
:pidof init emacs
1 9175
Listar procesos
El comando ps
puede listar el estado de los procesos:
Operaciones
Los procesos se pueden controlar de manera externa.
El comando kill
, xkill
o killall
permite enviarle señales a
los procesos. Por ejemplo la señal de terminación:
Jerarquía
El comando pstree nos permite ver la organización de los procesos en ejecución:
ps -fax | grep -A 10 bash | head
23324 pts/12 Ss 0:00 \_ -bash 23470 pts/12 S+ 0:00 \_ /bin/bash /home/osiris/bin/tmuxemacs 23475 pts/12 S+ 0:00 \_ tmux a -t emacs 1830 ? Ss 0:00 /lib/systemd/systemd-logind 1853 ? Ss 0:01 avahi-daemon: running [stout.local] 1968 ? S 0:00 \_ avahi-daemon: chroot helper 1855 ? Ss 0:45 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 1972 ? S 1:38 /usr/bin/tor --defaults-torrc /usr/share/tor/tor-service-defaults-torrc --hush 1979 ? Ssl 0:02 /usr/sbin/rsyslogd -n 1985 ? S 0:05 /usr/sbin/arpwatch -u arpwatch -N -p
pstree -p -U | head
systemd(1)─┬─/usr/bin/termin(4301)─┬─bash(4310)───tmuxmoc(4435)───tmux(4443)───sh(10217)───vlock-main(10218) │ ├─gnome-pty-helpe(4309) │ └─{gmain}(4311) ├─/usr/bin/termin(5167)─┬─bash(5174)───tmuxchat(5299)───tmux(5305)───sh(1722)───vlock-main(1731) │ ├─gnome-pty-helpe(5173) │ └─{gmain}(5175) ├─/usr/bin/termin(5664)─┬─bash(5672)───tmuxrcc(5805)───tmux(5815)───sh(15839)───vlock-main(15842) │ ├─bash(17884)───vim(18035)─┬─{ruby-timer-thr}(18037) │ │ └─{vim}(18036) │ ├─gnome-pty-helpe(5670)
En tiempo real
Para visualizar los procesos en ejecución, también se puede usar
htop
o top
:
export TERM=linux top -b -n1 | head -20
top - 10:54:45 up 2 days, 27 min, 8 users, load average: 0,56, 0,35, 0,28 Tasks: 212 total, 1 running, 211 sleeping, 0 stopped, 0 zombie %Cpu(s): 5,2 us, 2,9 sy, 0,6 ni, 90,6 id, 0,6 wa, 0,0 hi, 0,0 si, 0,0 st KiB Mem: 3439000 total, 3257812 used, 181188 free, 321512 buffers KiB Swap: 0 total, 0 used, 0 free. 1095340 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 4252 root 20 0 213184 26664 11128 S 6,4 0,8 278:39.12 Xorg 11518 osiris 20 0 410688 38908 16212 S 6,4 1,1 22:51.39 /usr/bin/t+ 1 root 20 0 111456 5204 2832 S 0,0 0,2 0:03.27 systemd 2 root 20 0 0 0 0 S 0,0 0,0 0:00.04 kthreadd 3 root 20 0 0 0 0 S 0,0 0,0 0:15.00 ksoftirqd/0 5 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 kworker/0:+ 7 root 20 0 0 0 0 S 0,0 0,0 0:56.68 rcu_sched 8 root 20 0 0 0 0 S 0,0 0,0 0:00.00 rcu_bh 9 root rt 0 0 0 0 S 0,0 0,0 0:00.44 migration/0 10 root rt 0 0 0 0 S 0,0 0,0 0:00.94 watchdog/0 11 root rt 0 0 0 0 S 0,0 0,0 0:00.94 watchdog/1 12 root rt 0 0 0 0 S 0,0 0,0 0:00.46 migration/1 13 root 20 0 0 0 0 S 0,0 0,0 0:14.40 ksoftirqd/1
Resumen
- Los procesos son instancias de programas en funcionamiento.
- Los recursos del sistema son limitados, el sistema administra y hace posible compartir recursos.
- Cada proceso tiene un identificador (
PID
), que nos sirve para enviar señales.
Changelog
slides pdf de Hugo Ruscitti a .org