]>
Commit | Line | Data |
---|---|---|
f7e15749 | 1 | #!/sbin/sh |
2 | # Donated code that was put under PD license. | |
3 | # | |
4 | # Stripped PRNGd out of it for the time being. | |
5 | ||
6 | umask 022 | |
7 | ||
8 | CAT=@CAT@ | |
9 | KILL=@KILL@ | |
10 | ||
11 | prefix=@prefix@ | |
12 | sysconfdir=@sysconfdir@ | |
13 | piddir=@piddir@ | |
14 | ||
15 | SSHD=$prefix/sbin/sshd | |
16 | PIDFILE=$piddir/sshd.pid | |
17 | SSH_KEYGEN=$prefix/bin/ssh-keygen | |
18 | HOST_KEY_RSA1=$sysconfdir/ssh_host_key | |
19 | HOST_KEY_DSA=$sysconfdir/ssh_host_dsa_key | |
20 | HOST_KEY_RSA=$sysconfdir/ssh_host_rsa_key | |
21 | ||
22 | ||
23 | checkkeys() { | |
24 | if [ ! -f $HOST_KEY_RSA1 ]; then | |
25 | ${SSH_KEYGEN} -t rsa1 -f ${HOST_KEY_RSA1} -N "" | |
26 | fi | |
27 | if [ ! -f $HOST_KEY_DSA ]; then | |
28 | ${SSH_KEYGEN} -t dsa -f ${HOST_KEY_DSA} -N "" | |
29 | fi | |
30 | if [ ! -f $HOST_KEY_RSA ]; then | |
31 | ${SSH_KEYGEN} -t rsa -f ${HOST_KEY_RSA} -N "" | |
32 | fi | |
33 | } | |
34 | ||
35 | stop_service() { | |
36 | if [ -r $PIDFILE -a ! -z ${PIDFILE} ]; then | |
37 | PID=`${CAT} ${PIDFILE}` | |
38 | fi | |
39 | if [ ${PID:=0} -gt 1 -a ! "X$PID" = "X " ]; then | |
40 | ${KILL} ${PID} | |
41 | else | |
42 | echo "Unable to read PID file" | |
43 | fi | |
44 | } | |
45 | ||
46 | start_service() { | |
47 | # XXX We really should check if the service is already going, but | |
48 | # XXX we will opt out at this time. - Bal | |
49 | ||
50 | # Check to see if we have keys that need to be made | |
51 | checkkeys | |
52 | ||
53 | # Start SSHD | |
54 | echo "starting $SSHD... \c" ; $SSHD | |
55 | ||
56 | sshd_rc=$? | |
57 | if [ $sshd_rc -ne 0 ]; then | |
58 | echo "$0: Error ${sshd_rc} starting ${SSHD}... bailing." | |
59 | exit $sshd_rc | |
60 | fi | |
61 | echo done. | |
62 | } | |
63 | ||
64 | case $1 in | |
65 | ||
66 | 'start') | |
67 | start_service | |
68 | ;; | |
69 | ||
70 | 'stop') | |
71 | stop_service | |
72 | ;; | |
73 | ||
74 | 'restart') | |
75 | stop_service | |
76 | start_service | |
77 | ;; | |
78 | ||
79 | *) | |
80 | echo "$0: usage: $0 {start|stop|restart}" | |
81 | ;; | |
82 | esac |