First Commit
[librecmc/package-feed.git] / net / openssh / files / sshd.init
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 }