Processos, PID e Sinais
O que é um Processo¶
Um processo é um programa em execução.
Ele possui: - PID (Process ID) - Usuário dono - Espaço de memória - Estado - Prioridade
No Linux, todo processo nasce de outro processo.
PID¶
PID (Process ID): - Identificador único do processo - Atribuído pelo kernel
Processo especial:
- PID 1 → systemd
- Pai de todos os processos de usuário
Processo Pai e Filho¶
- Todo processo (exceto PID 1) tem um pai
- Criação via
fork() - Execução via
exec()
Visualização:
- ps -ef
- pstree
Estados de Processo¶
Estados comuns:
- R → Running
- S → Sleeping
- D → Uninterruptible sleep
- Z → Zombie
- T → Stopped
Zombie: - Processo terminou - Pai não coletou status
Threads¶
- Processo pode ter várias threads
- Compartilham memória
- Kernel agenda threads, não processos
Sinais¶
Sinais são mensagens enviadas pelo kernel ou por processos.
Usados para: - Encerrar - Pausar - Recarregar - Notificar
Sinais Importantes¶
SIGTERM (15)→ encerramento graciosoSIGKILL (9)→ encerramento forçadoSIGINT (2)→ Ctrl + CSIGHUP (1)→ reload de configuração
Enviando Sinais¶
kill PIDkill -9 PIDpkill nomekillall nome
Prioridade e Nice¶
- Nice varia de
-20(mais prioridade) - Até
19(menos prioridade)
Comandos:
- nice
- renice
Processos em Background¶
&→ executa em backgroundjobsfgbg
Monitoramento¶
Ferramentas comuns:
- ps
- top
- htop
- atop
Erros Comuns¶
- Usar
kill -9como primeira opção - Não entender processos zumbis
- Confundir thread com processo
Regra Prática¶
- Sempre tente
SIGTERMantes deSIGKILL - Se um processo trava, verifique estado
D - PID 1 é sempre especial