如何注销特定会话?

如何注销特定会话?

我读过这个这些通用指令用于注销用户,但我想要更多细节。

当我运行该命令时users,我看到了同一用户的多个实例。例如: Joe Joe Joe Joe Joe

我如何知道 Joe 是否活跃?我如何才能找到有关 Joe 在每个会话中所做工作的更多信息?(例如,我可以关闭 Joe 已打开的会话而不丢失他的工作吗?)

我熟悉这个w命令。假设这个用户在家里忘了关终端,然后来上班;但重启服务器不是一个好主意,我只是使用了命令

pkill -KILL -u Joe bash 

这让我走出了自己的壳,也走出了家里开放的壳,不知道在这个过程中我是否会失去工作。

我能做些什么来帮助我评估哪些会话可以安全关闭?

我试过

skill -KILL -v /dev/pts/1 

终止特定会话,但什么也没有发生。

答案1

我建议使用w来识别空闲的tty,然后向其发送SIGHUP:

pkill -SIGHUP -t pts/5

SIGHUP(挂断信号)将更加优雅地终止会话,几乎就像用户logout自己发出命令一样。SIGKILL 应该始终是最后的手段。

答案2

我肯定误读了你的部分帖子。

除非使用 screen 或类似的东西,否则没有很好的方法可以重新连接到您已丢失连接的终端会话。以下是有关通过 ssh 连接启动 screen 的 stackexchange 帖子:

https://unix.stackexchange.com/questions/48002/problems-with-automatically-starting-screen-on-ssh-login

编辑:

这不是一个解决这个问题的方法

杀死-9 $(ps aux | grep“[] $(who | grep'Joe'| awk'{print $2}')”| awk'{print $2}')

相关内容