终端会话终止时是否加载了任何文件?

终端会话终止时是否加载了任何文件?

我知道 .profile / .bash_profile 在终端会话启动时加载,无论是通过本地计算机还是 SSH。会话终止时是否加载/调用任何文件?

原因:我将 .profile 设置为记录连接到特定用户的终端会话的日期和 IP 地址。

答案1

~/.bash_logout当登录 shell 退出时由 bash 执行。但您也可以使用获取 IP 地址和日期详细信息lastlog,您尝试过吗?

~/.bash_logout,但会话时不会运行kill -9 $$或可能被强制关闭

答案2

所有 shell 都有一种在 shell 退出时运行某些代码的方法:陷阱。 “陷阱”是外壳词信号处理程序。您可以通过列出信号的名称( INT、 、 ...)或其编号来设置信号陷阱HUP,或者使用特殊值0EXIT在 shell 正常退出时(通过到达输入末尾或 ifexit被调用)。

trap 'echo "$IP_ADDRESS logged out at $(date)" >>"$LOG_FILE"' EXIT HUP INT TERM

你不能陷入陷阱kill -KILL或停电。

我怀疑你所做的事情是否真的有用。此信息已记录在系统日志中。那里更可靠,因为你kill -KILL也可以进入。该命令last显示自上次日志轮换以来所有过去和当前会话的开始日期、结束日期和来源(终端或 IP 地址)。

相关内容