101 · LPIC-1 (parte 1)
103.5 Criar, monitorar e eliminar processos
TópicoT14ObjetivoCriar, monitorar e eliminar processos, incluindo sinais, foreground/background e daemonsPeso2PáginasLPIC-1 (101) - Version 5.0
Resumo Conciso
Criando processos
- Comandos interativos — Um único processo em background com
& - Shell scripts — Programas interpretados executados sequencialmente
command & # Executa comando em backgroundxeyes & # Janela abre e terminal fica livreSinais de processos
| Sinal | Número | Descrição |
|---|---|---|
| SIGHUP | 1 | Término com reinício |
| SIGINT | 2 | Interrompe o processo (Ctrl+C) |
| SIGQUIT | 3 | Sai do processo |
| SIGKILL | 9 | Mata o processo (forçado) |
| SIGTERM | 15 | Termina o processo (gracioso) |
| SIGTSTP | 20 | Suspende o processo (Ctrl+Z) |
| SIGCONT | 18 | Continua processo suspenso |
Gerenciando processos em foreground e background
| Comando | Descrição |
|---|---|
<ctrl> z | Coloca processo atual em background (suspendido) |
jobs | Lista processos em background |
fg | Retorna processo para foreground |
bg | Continua processo suspenso em background |
Monitorando processos
| Comando | Descrição |
|---|---|
ps | Exibe processos do sistema |
ps -ef | Lista todos os processos |
ps aux | Lista processos com detalhes |
ps -ef --forest | Árvore de processos |
top | Monitor de processos em tempo real |
htop | Monitor interativo melhorado |
pgrep | Busca processos por nome |
pkill | Mata processos por nome |
kill | Envia sinal a um processo (por PID) |
killall | Envia sinal a todos os processos de um nome |
xkill | Mata janela clicando nela |
ps -ef | grep "Xorg"ps aux | grep "firefox"ps -ef --foresttop -d 5 # Atualiza a cada 5 segundospgrep -u "fred"pkill -u "fred"kill -9 <PID>killall -9 firefoxGerenciando processos de terceiros (daemons)
- Daemons terminados com
d(ex:crond,sshd) - Controlados pelo
systemctl(systemd) — ver T03 para comandos systemctl detalhados
systemctl start sshdsystemctl stop sshdsystemctl restart sshdsystemctl reload sshdsystemctl status sshdsystemctl is-active sshdsystemctl is-enabled sshdDetachando de um shell
screen # Inicia sessão screenscreen -ls # Lista sessõesscreen -r <ID> # Reconecta a sessãoRedirecionando saída de processos
cat myinputfile.txt | tee myoutputfile.txt > /dev/nullVerificando processos com pgrep
pgrep -u "fred" # Lista PIDs de um utilizadorpgrep -l "Xorg" # Lista PID e nomepgrep -a "Xorg" # Lista PID e argumentosIdentificando processos
pgrep -P 1 # Processos cujo processo PAI é 1 (init/systemd)pgrep -P $PPID # Processos cujo pai é o shell atualpgrep -d, -a # Lista PID e argumentos, separados por vírgulaUsando kill e killall
kill -s "STOP" $(pgrep "Xorg") # Para processokill -s "CONT" $(pgrep "Xorg") # Continua processokillall -u "fred" -s "SIGHUP" # Envia SIGHUP a todos os processos de um utilizadorExercícios Guiados
-
Navegar no output do ps:
$ ps -ef --forest | grep "su" -
Processo e seu filho:
$ xeyes &$ ps -ef | grep "xeyes"$ top -d 5$ kill -s "STOP" <xeyes PID># Mude para janela do Xeyes e pressione Ctrl+c -
Processo em background com pgrep:
$ xeyes &$ pgrep -l "xeyes"$ pgrep -u root "xeyes"$ pgrep -a "xeyes" -
Matar com pkill e killall:
$ pkill -9 "xeyes"$ pgrep -l "xeyes"$ xeyes &$ killall -9 xeyes$ pgrep -l "xeyes"
Exercícios Exploratórios
- Gerar processos de shell para killall:
$ $ sleep 60 &$ $ sleep 60 &$ $ sleep 60 &$ $ pgrep -l "sleep"$ $ killall -9 "sleep"$ $ pgrep -l "sleep"- Listar processos em foreground:
$ $ ps -e | grep tty- Processos de terceiros do utilizador:
$ $ pgrep -P 1 -u "fred"$ $ pgrep -d, -a -P 1 -u "fred"- Iniciar daemon no boot:
$ $ systemctl enable sshd- Listar processos de um directório:
$ $ pgrep -d, -a -f "bash" | grep -E "/(home|etc)/fred"- Verificar processos com pgrep:
$ $ pgrep -d, -P 1 -u fred -a- Reiniciar daemon de logs:
$ $ sudo systemctl restart rsyslog