From: Simon Ruderich Date: Tue, 28 May 2013 10:45:24 +0000 (+0200) Subject: xinitrc: Terminate background processes. X-Git-Url: https://ruderich.org/simon/gitweb/?p=config%2Fdotfiles.git;a=commitdiff_plain;h=ea1ac11f5006206de7fd25ec3c196285c03d776e xinitrc: Terminate background processes. --- 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