summaryrefslogtreecommitdiffstats
path: root/debian/openssh-server.ssh.runscript
diff options
context:
space:
mode:
Diffstat (limited to 'debian/openssh-server.ssh.runscript')
-rw-r--r--debian/openssh-server.ssh.runscript/finish16
-rw-r--r--debian/openssh-server.ssh.runscript/run20
2 files changed, 36 insertions, 0 deletions
diff --git a/debian/openssh-server.ssh.runscript/finish b/debian/openssh-server.ssh.runscript/finish
new file mode 100644
index 0000000..8c67acf
--- /dev/null
+++ b/debian/openssh-server.ssh.runscript/finish
@@ -0,0 +1,16 @@
+#!/bin/sh
+set -e
+
+NAME=ssh
+
+[ "$1" = -1 ] && echo "runsv: ERROR in $NAME: unexpected error or wrong sh syntax"
+# no need to stop the service here, runsv will stop trying after the first attempt
+
+[ "$1" = 161 ] && echo "runsv: ERROR $1 in $NAME: disabled by local settings" \
+ && sv d "$(dirname "$0")" && exit 0
+
+[ "$1" = 162 ] && echo "runsv: ERROR $1 in $NAME: configtest or early setup failed" \
+ && sv d "$(dirname "$0")" && exit 0
+
+echo "$NAME Stopped"
+
diff --git a/debian/openssh-server.ssh.runscript/run b/debian/openssh-server.ssh.runscript/run
new file mode 100644
index 0000000..1d05245
--- /dev/null
+++ b/debian/openssh-server.ssh.runscript/run
@@ -0,0 +1,20 @@
+#!/usr/bin/env /lib/runit/invoke-run
+set -e
+
+NAME="ssh"
+
+sv start auditd || sv check auditd || true
+
+# don't start if 'sshd_not_to_be_run' exists
+test -e /etc/ssh/sshd_not_to_be_run && exit 161
+
+#Create /run/sshd
+test -d /run/sshd || mkdir /run/sshd && chmod 0755 /run/sshd
+
+exec 2>&1
+
+#Config test
+/usr/sbin/sshd -t || exit 162
+
+echo "Starting $NAME..."
+exec /usr/sbin/sshd -D -e $SSHD_OPTS