packages/openssh: use new service functions, move user/group creation from postinst...
[packages.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 SERVICE_USE_PID=1
8
9 start() {
10         for type in rsa dsa; do {
11                 # check for keys
12                 key=/etc/ssh/ssh_host_${type}_key
13                 [ ! -f $key ] && {
14                         # generate missing keys
15                         [ -x /usr/bin/ssh-keygen ] && {
16                                 /usr/bin/ssh-keygen -N '' -t $type -f $key 2>&- >&- && exec /etc/rc.common "$initscript" start
17                         } &
18                         exit 0
19                 }
20         }; done
21         user_exists sshd 22 || user_add sshd 22
22         group_exists sshd 22 || group_add ssh 22
23         mkdir -m 0700 -p /var/empty
24         mkdir -m 0755 -p /var/run/sshd
25         service_start /usr/sbin/sshd
26 }
27
28 stop() {
29         service_stop /usr/sbin/sshd
30 }
31
32 shutdown() {
33         local pid
34         local pids
35         local pid_mine
36
37         stop
38
39         # kill active clients
40         pid_mine="$$"
41         pids="$(pidof sshd)"
42         for pid in $pids; do
43                 [ "$pid" = "$pid_mine" ] && continue
44                 [ -e "/proc/$pid/stat" ] && kill $pid
45         done
46 }