[package] openssh: add ESSENTIAL_PROCESSES
[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 ESSENTIAL_PROCESSES="ssh sshd"
7
8 SERVICE_USE_PID=1
9
10
11 start() {
12         for type in rsa dsa; do {
13                 # check for keys
14                 key=/etc/ssh/ssh_host_${type}_key
15                 [ ! -f $key ] && {
16                         # generate missing keys
17                         [ -x /usr/bin/ssh-keygen ] && {
18                                 /usr/bin/ssh-keygen -N '' -t $type -f $key 2>&- >&-
19                         }
20                 }
21         }; done
22         user_exists sshd 22 || user_add sshd 22 22 sshd /var/empty
23         group_exists sshd 22 || group_add sshd 22 
24         mkdir -m 0700 -p /var/empty
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 }