From ea1ac11f5006206de7fd25ec3c196285c03d776e Mon Sep 17 00:00:00 2001 From: Simon Ruderich Date: Tue, 28 May 2013 12:45:24 +0200 Subject: [PATCH] xinitrc: Terminate background processes. --- xinitrc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/xinitrc b/xinitrc index 162efa4..d242454 100755 --- a/xinitrc +++ b/xinitrc @@ -37,6 +37,14 @@ fi installed() { type "$1" >/dev/null 2>&1 } +# Save PID of the most recently started background process. Used to terminate +# them when logging out to prevent unused background processes. On some +# systems this is only necessary for some programs (like ssh-agent), haven't +# yet figured out why. +save_background_pid() { + background_pids="$background_pids $!" +} +background_pids= # Options, can be modified in ~/.xinitrc.local. To disable a boolean option @@ -86,6 +94,7 @@ fi # Display timed reminders and recheck the file for changes every minute (-z1). if installed remind && test -f "$HOME/.reminders"; then remind -z1 -k'.shell/bin/notify.py %s &' "$HOME/.reminders" & + save_background_pid fi # Set color temperature of display according to time of day. @@ -107,3 +116,5 @@ if test -x /usr/bin/ssh-agent; then /usr/bin/ssh-agent -k >/dev/null # No `eval` necessary, we terminate anyway. fi +# Kill remaining background processes. +kill $background_pids -- 2.44.1