| # Copyright (c) 2012 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| description "Start sshd to allow remote network login" |
| author "chromium-os-dev@chromium.org" |
| |
| # This must start after the iptables job so that when we enable |
| # port 22 below, the change won't be overwritten. |
| |
| start on stopped iptables and stopped ip6tables and starting failsafe |
| stop on stopping failsafe |
| respawn |
| |
| # Allow boards to pass a few extra command line options. Like custom ports. |
| env SSHD_ARGS= |
| |
| pre-start exec /usr/share/chromeos-ssh-config/sshd-pre |
| |
| script |
| # sshd refuses to execute unless invoked with a full path. Go figure. |
| # For cros_embedded, sshd is in dev image so its in /usr/local/sbin. |
| path='/usr/sbin/sshd' |
| if [ ! -f "${path}" ]; then |
| path='/usr/local/sbin/sshd' |
| fi |
| |
| # We pass -D to keep sshd in the foreground. Upstart already provides |
| # the same features for us: |
| # - It dropped a controlling tty (std{in,err,out} are /dev/null). |
| # - It calls setsid() for every job. |
| # - It forked for us. |
| # This is also required for newer versions of openssh which probes to see |
| # "am I already daemonized", and Upstart triggers that code. |
| exec "${path}" -D ${SSHD_ARGS} |
| end script |
| |
| post-stop exec /usr/share/chromeos-ssh-config/sshd-post |