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.
- 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