sshd.init (721B)
1 #!/bin/sh /etc/rc.common 2 # Copyright (C) 2006-2011 OpenWrt.org 3 4 START=50 5 STOP=50 6 7 USE_PROCD=1 8 PROG=/usr/sbin/sshd 9 10 start_service() { 11 for type in rsa ecdsa ed25519; do { 12 # check for keys 13 key=/etc/ssh/ssh_host_${type}_key 14 [ ! -f $key ] && { 15 # generate missing keys 16 [ -x /usr/bin/ssh-keygen ] && { 17 /usr/bin/ssh-keygen -N '' -t $type -f $key 2>&- >&- 18 } 19 } 20 }; done 21 mkdir -m 0700 -p /var/empty 22 23 procd_open_instance 24 procd_set_param command $PROG -D 25 procd_close_instance 26 } 27 28 shutdown() { 29 local pid 30 local pids 31 local pid_mine 32 33 stop 34 35 # kill active clients 36 pid_mine="$$" 37 pids="$(pidof sshd)" 38 for pid in $pids; do 39 [ "$pid" = "$pid_mine" ] && continue 40 [ -e "/proc/$pid/stat" ] && kill $pid 41 done 42 }