Initialize Tizen 2.3
[external/openssh.git] / packaging / openssh-server.init
1 #! /bin/sh
2
3 ### BEGIN INIT INFO
4 # Provides:             sshd
5 # Required-Start:       $remote_fs $syslog
6 # Required-Stop:        $remote_fs $syslog
7 # Default-Start:        2 3 4 5
8 # Default-Stop:         
9 # Short-Description:    OpenBSD Secure Shell server
10 ### END INIT INFO
11
12 set -e
13
14 # /etc/init.d/ssh: start and stop the OpenBSD "secure shell(tm)" daemon
15
16 test -x /usr/sbin/sshd || exit 0
17
18 umask 022
19
20 export SSHD_OOM_ADJUST=-17
21 if test -f /etc/default/ssh; then
22     . /etc/default/ssh
23 fi
24
25 # Are we in a virtual environment that doesn't support modifying
26 # /proc/self/oom_adj?
27 if grep -q 'envID:.*[1-9]' /proc/self/status; then
28     unset SSHD_OOM_ADJUST
29 fi
30
31 . /lib/lsb/init-functions
32
33 if [ -n "$2" ]; then
34     SSHD_OPTS="$SSHD_OPTS $2"
35 fi
36
37 # Are we running from init?
38 run_by_init() {
39     ([ "$previous" ] && [ "$runlevel" ]) || [ "$runlevel" = S ]
40 }
41
42 check_for_no_start() {
43     # forget it if we're trying to start, and /etc/ssh/sshd_not_to_be_run exists
44     if [ -e /etc/ssh/sshd_not_to_be_run ]; then 
45         if [ "$1" = log_end_msg ]; then
46             log_end_msg 0
47         fi
48         if ! run_by_init; then
49             log_action_msg "OpenBSD Secure Shell server not in use (/etc/ssh/sshd_not_to_be_run)"
50         fi
51         exit 0
52     fi
53 }
54
55 check_dev_null() {
56     if [ ! -c /dev/null ]; then
57         if [ "$1" = log_end_msg ]; then
58             log_end_msg 1 || true
59         fi
60         if ! run_by_init; then
61             log_action_msg "/dev/null is not a character device!"
62         fi
63         exit 1
64     fi
65 }
66
67 check_privsep_dir() {
68     # Create the PrivSep empty dir if necessary
69     if [ ! -d /var/run/sshd ]; then
70         mkdir /var/run/sshd
71         chmod 0755 /var/run/sshd
72     fi
73 }
74
75 check_config() {
76     if [ ! -e /etc/ssh/sshd_not_to_be_run ]; then
77         /usr/sbin/sshd $SSHD_OPTS -t || exit 1
78     fi
79 }
80
81 export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
82
83 case "$1" in
84   start)
85         check_privsep_dir
86         check_for_no_start
87         check_dev_null
88         log_daemon_msg "Starting OpenBSD Secure Shell server" "sshd"
89         if start-stop-daemon --start --quiet --oknodo --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd -- $SSHD_OPTS; then
90             log_end_msg 0
91         else
92             log_end_msg 1
93         fi
94         ;;
95   stop)
96         log_daemon_msg "Stopping OpenBSD Secure Shell server" "sshd"
97         if start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/sshd.pid; then
98             log_end_msg 0
99         else
100             log_end_msg 1
101         fi
102         ;;
103
104   reload|force-reload)
105         check_for_no_start
106         check_config
107         log_daemon_msg "Reloading OpenBSD Secure Shell server's configuration" "sshd"
108         if start-stop-daemon --stop --signal 1 --quiet --oknodo --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd; then
109             log_end_msg 0
110         else
111             log_end_msg 1
112         fi
113         ;;
114
115   restart)
116         check_privsep_dir
117         check_config
118         log_daemon_msg "Restarting OpenBSD Secure Shell server" "sshd"
119         start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile /var/run/sshd.pid
120         check_for_no_start log_end_msg
121         check_dev_null log_end_msg
122         if start-stop-daemon --start --quiet --oknodo --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd -- $SSHD_OPTS; then
123             log_end_msg 0
124         else
125             log_end_msg 1
126         fi
127         ;;
128
129   try-restart)
130         check_privsep_dir
131         check_config
132         log_daemon_msg "Restarting OpenBSD Secure Shell server" "sshd"
133         set +e
134         start-stop-daemon --stop --quiet --retry 30 --pidfile /var/run/sshd.pid
135         RET="$?"
136         set -e
137         case $RET in
138             0)
139                 # old daemon stopped
140                 check_for_no_start log_end_msg
141                 check_dev_null log_end_msg
142                 if start-stop-daemon --start --quiet --oknodo --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd -- $SSHD_OPTS; then
143                     log_end_msg 0
144                 else
145                     log_end_msg 1
146                 fi
147                 ;;
148             1)
149                 # daemon not running
150                 log_progress_msg "(not running)"
151                 log_end_msg 0
152                 ;;
153             *)
154                 # failed to stop
155                 log_progress_msg "(failed to stop)"
156                 log_end_msg 1
157                 ;;
158         esac
159         ;;
160
161   status)
162         status_of_proc -p /var/run/sshd.pid /usr/sbin/sshd sshd && exit 0 || exit $?
163         ;;
164
165   *)
166         log_action_msg "Usage: /etc/init.d/ssh {start|stop|reload|force-reload|restart|try-restart|status}"
167         exit 1
168 esac
169
170 exit 0