Por que executar 'killall init' como usuário faz logout?

12

Em vários computadores que executam o Ubuntu 14.XX, eu corri o comando "killall init" como usuário e fui imediatamente desconectado. Eu poderia entrar novamente sem nenhum problema. Por que é isso? O que está acontecendo nos bastidores?

    
por EMBLEM 28.01.2015 / 02:57

1 resposta

21

Em sistemas Upstart mais recentes, um processo init de sessão é iniciado quando você faz login usando a GUI. Como o Ubuntu usa o Upstart, há um processo init para sua sessão. Teste usando pstree -ps $$ em um terminal:

$ pstree -ps $$
init(1)───lightdm(1741)───lightdm(9511)───init(9526)───/usr/bin/termin(9570)─┬─gnome-pty-helpe(9734)                                                                                                                                                                                  
                                                                             └──zsh(7944)

Portanto, quando você executar killall init , não estará matando init PID 1 (porque você não tem o privilégio), mas a sua sessão init , que seria PID 9526 neste exemplo.

Como esse init é o processo que rege sua sessão de GUI, matá-lo mata sua sessão e, portanto, você está desconectado.

    
por 28.01.2015 / 03:02