From 7a429f23d389f21d7f98737e6f641442c794226e Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Mon, 26 Nov 2012 16:25:31 +0000 Subject: Merge Upstart job scripting support from Ubuntu, to handle the Upstart job being primary there. --- debian/openssh-server.if-up.in | 51 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 debian/openssh-server.if-up.in (limited to 'debian/openssh-server.if-up.in') diff --git a/debian/openssh-server.if-up.in b/debian/openssh-server.if-up.in new file mode 100644 index 000000000..871493068 --- /dev/null +++ b/debian/openssh-server.if-up.in @@ -0,0 +1,51 @@ +#! /bin/sh +# Reload the OpenSSH server when an interface comes up, to allow it to start +# listening on new addresses. + +set -e + +# Don't bother to restart sshd when lo is configured. +if [ "$IFACE" = lo ]; then + exit 0 +fi + +# Only run from ifup. +if [ "$MODE" != start ]; then + exit 0 +fi + +# OpenSSH only cares about inet and inet6. Get ye gone, strange people +# still using ipx. +if [ "$ADDRFAM" != inet ] && [ "$ADDRFAM" != inet6 ]; then + exit 0 +fi + +# Is /usr mounted? +if [ ! -e /usr/sbin/sshd ]; then + exit 0 +fi + +if [ ! -f /var/run/sshd.pid ] || \ + [ "$(ps -p "$(cat /var/run/sshd.pid)" -o comm=)" != sshd ]; then + exit 0 +fi + +case '@DISTRIBUTOR@' in + Ubuntu) + # Both init script and Upstart job are present; we want to operate + # on the Upstart job. + stop ssh || true + start ssh || true + ;; + *) + # We'd like to use 'reload' here, but it has some problems; see + # #502444. + if [ -x /usr/sbin/invoke-rc.d ]; then + invoke-rc.d ssh restart >/dev/null 2>&1 || true + else + /etc/init.d/ssh restart >/dev/null 2>&1 || true + fi + ;; +esac + +exit 0 -- cgit v1.2.3