我希望当 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