Home | History | Annotate | Download | only in admin
      1 #!/bin/sh
      2 # Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
      3 # Use of this source code is governed by a BSD-style license that can be
      4 # found in the LICENSE file.
      5 #
      6 # autotest control init script, intended for Debian/Ubuntu type boxes.
      7 #
      8 # copy this to /etc/init.d/autotest, then run this:
      9 #
     10 # update-rc.d autotest start 95 2 3 4 5 . stop 90 0 1 6 .
     11 
     12 BASE_DIR=/usr/local/autotest
     13 BECOME_USER=chromeos-test
     14 
     15 # Setup PATH so Autotest can run gsutil and cros_sdk for stack trace generation.
     16 PATH_EXTRAS=$PATH:/usr/local/google/gsutil:/usr/local/google/depot_tools
     17 
     18 if (test -r /lib/lsb/init-functions)
     19 then
     20   . /lib/lsb/init-functions
     21 else
     22   echo "This script requires /lib/lsb/init-functions"
     23   exit 1
     24 fi
     25 
     26 # ---
     27 
     28 autotest_start() {
     29   cd /tmp
     30 
     31   log_daemon_msg "Starting monitor_db_babysitter"
     32   ( ulimit -v 2048000 ; PATH=$PATH_EXTRAS USER=$BECOME_USER USERNAME=$USER \
     33     start-stop-daemon --start --quiet --chuid $BECOME_USER \
     34       --background --exec $BASE_DIR/scheduler/monitor_db_babysitter )
     35 }
     36 
     37 stop_daemon() {
     38   PID_NAME=$1
     39   DAEMON_NAME=$2
     40   log_daemon_msg "Stopping $DAEMON_NAME"
     41   start-stop-daemon --stop --quiet --pidfile $BASE_DIR/$PID_NAME.pid
     42 }
     43 
     44 autotest_stop() {
     45   stop_daemon monitor_db_babysitter babysitter
     46   stop_daemon monitor_db scheduler
     47 }
     48 
     49 case "$1" in
     50   start)
     51     autotest_start
     52     ;;
     53 
     54   stop)
     55     autotest_stop
     56     ;;
     57 
     58   restart)
     59     autotest_stop
     60     sleep 2
     61     autotest_start
     62     ;;
     63 
     64   *)
     65     echo "Usage: $0 start|stop|restart"
     66     exit 1
     67 
     68 esac
     69