Como o systemd sobrevive a um kill -9?

28

Entre as perguntas recentes "Por que 'matar -9 0' finalizar minha sessão de console" e "Como obter um kernel panic", eu coloquei uma broca embaixo da sela e tentei kill -9 1 em uma maioria de up-to- data Arch laptop linux. Eu fiz isso como o ID do usuário "root".

Esperei completamente algum tipo de falha, pânico ou desligamento, mas nada aconteceu. Eu fiz kill -9 1 novamente, sem efeito.

As máquinas Arch Linux executam systemd nos dias de hoje, então: como systemd sobrevive a um kill -9? Espero que exista um código de caso especial no kernel do Linux 3.7, mas talvez exista alguma outra razão que eu não tenha pensado.

E sobre outras coisas que funcionam com o PID 1? O Slackware ainda usa init , acredito, mas estou com medo de experimentar no meu servidor Slackware de produção. DD-WRT no meu roteador sem fio executa / sbin / init de algum tipo.

    
por Bruce Ediger 03.03.2013 / 05:53

1 resposta

33

De man 2 kill :

The only signals that can be sent to process ID 1, the init process, are those for which init has explicitly installed signal handlers. This is done to assure the system is not brought down accidentally.

Ou seja, é possível que init faça o que quiser ao receber SIGKILL (incluindo a saída), mas o init do systemd não instala nenhum manipulador de sinal, então nada acontece.

    
por 03.03.2013 / 06:01