[package] openssh: add ESSENTIAL_PROCESSES
[openwrt/svn-archive/archive.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 }