#!/sbin/openrc-run # Alpine Linux init.d for TinySSH # Copyright 2017 Stuart Cardall (https://github.com/itoffshore) # Distributed under the terms of the GNU General Public License, v2 or later # # Modified by Laurent Bercot 2021-12-07 OPTIONS=${OPTIONS:-\-v -l} PORT=${PORT:-22} IP=${IP:-0.0.0.0} CONFDIR=${CONFDIR:-/etc/tinyssh} keydir=${CONFDIR}/sshkeys depend() { use net after logger firewall } name=tinysshd description="Small SSH server using libsodium (no dependency on OpenSSL)" command="s6-tcpserver" command_args="${IP} ${PORT} $name ${OPTIONS} $keydir" command_background=true pidfile=/var/run/tinysshd.pid start_pre() { if ! [ -d "$keydir" ]; then checkpath -D ${CONFDIR} tinysshd-makekey $keydir 2>/dev/null fi } stop_post() { if [ "$RC_RUNLEVEL" = "shutdown" ]; then local _tinysshd_pids=$(pgrep tinysshd) if [ -n "$_tinysshd_pids" ]; then ebegin "Shutting down ssh connections" # shellcheck disable=SC2086 kill -TERM $_tinysshd_pids >/dev/null 2>&1 eend 0 fi fi }