Sinais no Linux [Guia Básico]
A “conversa” entre o sistema operacional e os programas em execução é através de Sinais no Linux, que são interrupções de software, utilizadas para colocar um programa conectado a um terminal, em espera, em segundo ou em primeiro plano, e até mesmo parar sua execução.
Cada processo no Linux fica à escuta de sinais. Estes sinais são utilizados pelo Kernel, por outros processos ou por usuário para avisar a um determinado processo sobre algum evento em particular. O guru de UNIX W. Richard Stevens descreve os sinais como interrupções de software.
Quando um sinal é enviado para um processo ele toma uma determinada ação dependendo do valor que este sinal carrega.
Cada sinal tem um nome exclusivo e um valor numérico.
Vejamos alguns valores e suas ações:
TABELA – Sinais mais importantes
Sinal | Valor Numérico | Ação |
SIGHUP | 1 | Hang-Up ou desligamento. Este sinal é utilizado automaticamente quando você desconecta de uma sessão ou fecha um terminal. Ele também é utilizado por processos servidores para invocar a releitura do arquivo de configuração. |
SIGINT | 2 | É o sinal de interromper o funcionamento. Ele é acionado por exemplo quando se aperta as teclas Ctrl C. |
SIGKILL | 9 | Terminar o processo incondicionalmente de forma rápida e drástica. Este tipo de sinal pode deixar arquivos abertos e bases de dados corrompidas. Deve ser utilizado caso o processo pare de responder ou em uma emergência. |
SIGTERM | 15 | Termina o processo de forma elegante, possibilitando que ele feche arquivos e execute suas rotinas de fim de execução. |
SIGCONT | 18 | É um sinal para um processo que foi parado com o sinal SIGSTOP para que ele continue a executar. |
SIGSTOP | 19 | É um sinal que pode ser enviado para um processo parar de funcionar momentaneamente. Ele continua existindo, mas não recebe mais CPU para executar, até que receba o sinal SIGCONT. |
SIGTSTP | 20 | Termina a execução para continuar depois. Este sinal é enviado automaticamente quando utilizamos as teclas ctrl-z. É utilizado para colocar o processo em segundo plano. |
O Linux possui mais de 30 sinais definidos. A maioria é utilizada pelo Kernel e alguns pelos usuários em situações específicas.
O entendimento de sinais é importante para sabermos como o sistema interage com os processos em execução. Os comandos kill e killall podem ser usados para enviar sinais específicos para um processo em execução.
A maioria dos administradores ao parar um processo, usa o SIGKILL. No entanto, este sinal é muito “forte”, pois faz uma parada abrupta no processo em execução, e pode deixar arquivos abertos, indexes malfeitos, e dados corrompidos. É melhor usar o sinal SIGTERM, que permite que o programa termine elegantemente, fechando os arquivos, indexes e bases de dados.
O Linux permite que os usuários enviem sinais para os programas em execução através do comando kill.
Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.
Gostou? Compartilhe
Tag:/dev, bash, certificação, certificaçãolinux, code, Comptia, developer, empreendedorismo, exame, freesoftware, gnu, hack, Linux, linuxfan, linuxfun, linuxmint, lovelinux, LPI, LPIC, management, nerd, opensource, php, prova, shell, software, softwarelivre, sql, tech, ti, unix