希望用户在退出 bash 脚本时从 shell 中注销

希望用户在退出 bash 脚本时从 shell 中注销

我希望当 Linux 用户退出 shell 脚本时,也能从 bash shell 中注销。这可能吗?

答案1

它不会正常启动脚本,exec而是。这将替换登录 shell,因此当脚本完成时,用户将被注销。

答案2

用以下方式结束脚本kill -HUP $PPID

$PPID 是父进程的进程 ID。

答案3

根据您要完成的任务,您可以使用脚本名称而不是外壳在 /etc/passwd 中。

/etc/passwd 中的最后一项(最后一个冒号后面的所有内容)是在用户登录时运行。通过将其更改为脚本的名称,当脚本结束时,根据定义,shell 也会结束。

** 但是,编辑 /etc/passwd 时要非常小心,因为您可能会把自己锁在机器之外。显然,您可以使用

usermod --shell <script name> <user name>

这将是进行此更改的更安全的方法。

答案4

用杀死?

$ kill -HUP `ps -ef |grep $USER|grep bash|awk {'print $2'}`

编辑:正如评论中所说,它与 PPID 配合使用效果更好

$ kill -HUP $PPID

相关内容