Linux: Como o usuário efetua logout do trabalho

4

Sou novo no linux. Eu pesquisei sobre como fazer logout com segurança de outro usuário e encontrei poucas soluções, mas quero saber como elas funcionam internamente. Tenho algumas perguntas:
1. pkill -KILL -u {username} Envia SIGKILL para todos os filhos do init - user? e garante que todo processo infantil seja morto com segurança?
2. Isso pode ser feito usando apenas sinais de envio?

P.S Eu tenho programa que cria init - user para outro usuário, estou matando usando SIGTERM mas às vezes compiz falhas. É por isso que eu sou interessante como isso funciona corretamente.

    
por user590536 23.05.2016 / 11:56

1 resposta

3

  1. pkill -KILL -u {username} Does it just send SIGKILL to every child of init --user? and does it ensure that every child process is safely killed?

Ele envia o SIGKILL para todos os processos pertencentes à conta {username} , independentemente de seu pai. (Note que "init --user" é um pouco específico da distribuição.)

No entanto, é tão longe de ser "seguro" quanto possível. SIGKILL é a abordagem de força bruta que termina todos os processos sem deixá-los encerrar e limpar adequadamente; é o oposto de "seguro".

Muitos programas baseados em terminal reagem ao SIGHUP como "desligamento de linha". Após alguns segundos, os restantes podem ser interrompidos com SIGTERM. Só então, se você ainda tiver sobras após o SIGHUP e o SIGTERM, você deve usar o SIGKILL como a abordagem final.

  1. Can It be done using sending signals?

Possivelmente - a maioria dos programas entende SIGHUP ou SIGTERM. Mas os programas gráficos podem preferir ser interrompidos pelo gerenciador de sessão , ou seja, pelo gnome-session, usando o ICE / XSMP (não sei como isso funciona exatamente). Em geral, a abordagem "mais segura" seria usar o comando logoff do ambiente de área de trabalho; por exemplo:

gnome-session-quit --logout --force --no-prompt
gnome-session-save --force-logout --silent
qdbus org.kde.ksmserver /KSMServer logout 0 -1 -1
qdbus org.razorqt.session /RazorSession logout
mate-session-save --logout
xfce4-session-logout --logout
    
por 23.05.2016 / 12:18