chiark / gitweb /
dot/zshrc: Turn off `KSH_GLOB'.
[profile] / bin / start-ssh-agent
index bfb2608f6c6e645be26c9549a6bbb53ff1a62728..d5389d8c03861072ea5018989b41970d8cdf5271 100755 (executable)
@@ -68,13 +68,20 @@ case $foundp in
   nil)
     mkdir -p -m700 "$dir"
     SSH_AUTH_SOCK=$socket
+    p=$PATH
+    runes=
+    while :; do
+      case $p in *:*) d=${p%%:*} p=${p#*:} ;; *) d=$p p= ;; esac
+      if [ -x "${d+$d/}setsid" ]; then runes="$runes setsid"; break; fi
+      case $p in "") break ;; esac
+    done
     set +e; ssh-add -l >/dev/null 2>&1; rc=$?; set -e
     if [ $rc -ge 2 ]; then
       if [ -f "$pid" ]; then
        kill $(cat "$pid") >/dev/null 2>&1 || :
       fi
       rm -f "$socket" "$pid"
-      (cd /; exec ssh-agent -d -a "$socket" >/dev/null 2>&1)&
+      (cd /; exec $runes ssh-agent -d -a "$socket" </dev/null >/dev/null 2>&1)&
       echo $! >"$pid"
       SSH_AUTH_SOCK=$socket
     fi