aboutsummaryrefslogtreecommitdiff
path: root/sh/profile
diff options
context:
space:
mode:
Diffstat (limited to 'sh/profile')
-rw-r--r--sh/profile15
1 files changed, 15 insertions, 0 deletions
diff --git a/sh/profile b/sh/profile
index 5dfe0ef3..7fea250b 100644
--- a/sh/profile
+++ b/sh/profile
@@ -9,6 +9,21 @@ for sh in "$HOME"/.profile.d/*.sh ; do
done
unset -v sh
+# Trap on exit to run ~/.logout if it exists
+logout_trap() {
+ if [ -f "$HOME"/.logout ] ; then
+ . "$HOME"/.logout
+ fi
+ if [ "$1" != EXIT ] ; then
+ trap - "$1"
+ kill "-$1" "$$"
+ fi
+}
+for sig in EXIT HUP INT TERM ; do
+ trap "logout_trap $sig" "$sig"
+done
+unset -v sig
+
# If ENV is unset after running those scripts and ~/.shrc exists, set it as ENV
if [ -z "$ENV" ] && [ -f "$HOME"/.shrc ] ; then
ENV=$HOME/.shrc