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