diff options
Diffstat (limited to 'factory-default')
-rwxr-xr-x | factory-default/net-misc/openssh/etc/init.d/ssh-agent | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/factory-default/net-misc/openssh/etc/init.d/ssh-agent b/factory-default/net-misc/openssh/etc/init.d/ssh-agent index d43f1b5d..4e33204f 100755 --- a/factory-default/net-misc/openssh/etc/init.d/ssh-agent +++ b/factory-default/net-misc/openssh/etc/init.d/ssh-agent @@ -19,21 +19,32 @@ checkconfig() { start() { checkconfig || return 1 + if [[ -e "${SSH_AGENT_SOCK}" ]] ; then + einfo "Removing stale ${SSH_AGENT_SOCK}" + rm -f "${SSH_AGENT_SOCK}" + eend $? + return 1 + fi + ebegin "Starting ssh-agent (${SSH_AGENT_USER})" start-stop-daemon --start \ --user "${SSH_AGENT_USER}" \ --pidfile "${pidfile}" \ --exec /usr/bin/ssh-agent \ -- -a "${SSH_AGENT_SOCK}" \ - > "${envfile}" \ - || die "ssh-agent fail to start" - eend $? + > "${envfile}" + + if [[ $? != 0 ]] ; then + eend 1 "Fail to start ssh-agent" + return 1 + fi source "${envfile}" > /dev/null rm -f "${envfile}" if [[ -z ${SSH_AGENT_PID} ]] ; then - die "ssh-agent generate to PID" + eend 1 "ssh-agent failed to generate a PID" + return 1 fi echo "${SSH_AGENT_PID}" > "${pidfile}" |