103.5 - Crear, monitorizar y matar procesos: Comandos clave

Visualizar procesos con ps

ComandoDescripcionEjemplo
ps auxTodos los procesos, formato BSD detalladops aux
ps -efTodos los procesos, formato UNIX (incluye PPID)ps -ef
ps -eo camposSeleccionar columnas especificasps -eo pid,user,%cpu,comm
ps -eo ... --sort=campoOrdenar por campo (- para descendente)ps -eo pid,%mem,comm --sort=-%mem
ps -u usuarioProcesos de un usuariops -u sandra
ps -p PIDInformacion de un PID concretops -p 1234
ps -ef --forestArbol de procesosps -ef --forest
ps aux | grep nombreBuscar proceso por nombreps aux | grep apache

Monitorizar en tiempo real

ComandoDescripcionEjemplo
topMonitor de procesos en tiempo realtop
top -d NActualizar cada N segundostop -d 5
top -p PIDMonitorizar solo un PIDtop -p 1234
top -u usuarioFiltrar por usuariotop -u sandra
top -b -n 1Modo batch, una iteracion (para scripts)top -b -n 1 > salida.txt
htopMonitor interactivo mejorado (colores, raton)htop

Teclas interactivas de top

TeclaAccion
kMatar proceso (pide PID y senal)
rCambiar prioridad (renice)
qSalir
POrdenar por CPU
MOrdenar por memoria
NOrdenar por PID
TOrdenar por tiempo
uFiltrar por usuario
cMostrar ruta completa
1Ver cada CPU por separado
dCambiar intervalo de refresco
SpaceRefrescar ahora
WGuardar configuracion

Buscar procesos

ComandoDescripcionEjemplo
pgrep nombreBuscar PIDs por nombre de procesopgrep apache
pgrep -l nombrePIDs con nombre del procesopgrep -l ssh
pgrep -a nombrePIDs con linea de comandos completapgrep -a python
pgrep -u usuarioPIDs por usuariopgrep -u root
pgrep -c nombreContar procesos que coincidenpgrep -c apache
pgrep -x nombreCoincidencia exacta del nombrepgrep -x cron
pgrep -f patronBuscar en la linea de comandos completapgrep -f "python app.py"

Senales principales

NumeroNombreDescripcionNotas
1SIGHUPColgar / recargar configuracionDaemons la usan para recargar config
2SIGINTInterrumpir (Ctrl+C)El proceso puede capturarla
9SIGKILLMatar forzosamenteNo puede ser capturada ni ignorada
15SIGTERMTerminar limpiamenteSenal por defecto de kill
18SIGCONTContinuar proceso detenidoReanuda tras SIGSTOP/SIGTSTP
19SIGSTOPDetener (pausar)No puede ser capturada ni ignorada
20SIGTSTPDetener desde terminal (Ctrl+Z)Puede ser capturada

Enviar senales

ComandoDescripcionEjemplo
kill PIDEnviar SIGTERM (por defecto)kill 1234
kill -9 PIDEnviar SIGKILL (forzar terminacion)kill -9 1234
kill -1 PIDEnviar SIGHUP (recargar config)kill -1 1234
kill -TERM PIDSIGTERM por nombrekill -TERM 1234
kill -lListar todas las senaleskill -l
kill -0 PIDVerificar si proceso existekill -0 1234
killall nombreSIGTERM a todos con ese nombre exactokillall apache2
killall -9 nombreSIGKILL a todos con ese nombrekillall -9 firefox
killall -u usuarioMatar procesos de un usuariokillall -u sandra
killall -i nombreModo interactivo (pide confirmacion)killall -i apache2
pkill patronSIGTERM por patron (coincidencia parcial)pkill apach
pkill -9 patronSIGKILL por patronpkill -9 fire
pkill -f patronBuscar en linea de comandos completapkill -f "python app"
pkill -u usuarioMatar por usuariopkill -u sandra

Gestion de trabajos (jobs)

ComandoDescripcionEjemplo
comando &Ejecutar en segundo planosleep 300 &
jobsListar trabajos del shelljobs
jobs -lListar con PIDsjobs -l
jobs -pSolo PIDsjobs -p
bgReanudar trabajo actual en backgroundbg
bg %NReanudar trabajo N en backgroundbg %2
fgTraer trabajo actual a foregroundfg
fg %NTraer trabajo N a foregroundfg %1
Ctrl+ZSuspender proceso de primer plano(teclado)
Ctrl+CInterrumpir proceso de primer plano(teclado)

nohup y persistencia

ComandoDescripcionEjemplo
nohup comando &Ejecutar inmune a SIGHUPnohup ./backup.sh &
nohup cmd > archivo 2>&1 &nohup con redireccion personalizadanohup ./script.sh > log.txt 2>&1 &

Multiplexores de terminal

ComandoDescripcion
screenIniciar nueva sesion screen
screen -S nombreSesion con nombre
screen -lsListar sesiones
screen -r nombreReconectar a sesion
Ctrl+a dDesconectar de screen
tmuxIniciar nueva sesion tmux
tmux new -s nombreSesion con nombre
tmux lsListar sesiones
tmux attach -t nombreReconectar a sesion
Ctrl+b dDesconectar de tmux

Otros comandos de monitorizacion

ComandoDescripcionEjemplo
watch comandoEjecutar cada 2 seg (por defecto)watch df -h
watch -n N comandoEjecutar cada N segundoswatch -n 5 free -m
watch -d comandoResaltar diferenciaswatch -d ls -la
uptimeTiempo de actividad y load averageuptime
free -mUso de memoria en megabytesfree -m
free -hUso de memoria formato legiblefree -h
free -s NActualizar cada N segundosfree -s 3