root/trunk/scripts/start

Revision 7, 1.5 kB (checked in by whispercastorg, 2 years ago)

version 0.2.0

  • Property svn:executable set to
Line 
1 #!/bin/bash
2
3 pushd `dirname $0` > /dev/null
4
5 L=`basename $0`
6 D='+[%Y-%m-%d %H:%M:%S]'
7
8 COMMAND=$1
9 shift
10
11 SERVICE=${COMMAND%/*}
12 if [ "$SERVICE" = "" ]; then
13   echo "$(date "$D") [$L] : Usage: $L SERVICE[/APPLICATION]"
14   exit 1
15 fi
16 if [ ! -d "../services/$SERVICE" ]; then
17   echo "$(date "$D") [$L] : The service \"$SERVICE\" does not exist"
18   exit 2
19 fi
20
21 CONFIG=`readlink -f "../services/$SERVICE/components.ini"`
22 if [ ! -f "$CONFIG" ]; then
23   echo "$(date "$D") [$L] : The service \"$SERVICE\" is not configured (no \"components.ini\" in \"$(dirname $CONFIG)\")"
24   exit 3
25 fi
26
27 COMPONENT=${COMMAND:$[${#SERVICE}+1]}
28 if [ "$COMPONENT" = "" ]; then
29   IFS_PREVIOUS=$IFS
30   IFS='
31 '
32   COMPONENTS=( $( < "$CONFIG" ) )
33   IFS=$IFS_PREVIOUS
34 else
35   COMPONENTS=(${COMPONENT})
36 fi
37
38 for (( i=0;i<${#COMPONENTS[@]};i++)); do
39   COMPONENT=${COMPONENTS[${i}]}
40
41   BINARY=`readlink -f "../bin/$COMPONENT"`
42   if [ ! -x "$BINARY" ]; then
43     echo "$(date "$D") [$L] : \"$BINARY\" does not exist or is not executable"
44     exit 4
45   fi
46
47   FULL=$SERVICE/$COMPONENT
48   FULL_N=${FULL//\//_}
49
50   STOPFILE="/tmp/whispercast.$FULL_N.stop"
51
52   echo -n "$(date "$D") [$L] : Checking if \"$FULL\" is running... "
53   if ! `pgrep -f "\.\/start_ $SERVICE $COMPONENT\$" > /dev/null`; then
54     echo " - not running, starting it now..."
55     rm -f $STOPFILE
56    ./start_ $SERVICE $COMPONENT > /dev/null 2>&1 >> "../var/log/$FULL-runner.LOG" &
57     echo "$(date "$D") [$L] : Done"
58   else
59     echo " - already running."
60   fi
61 done
62
63 popd > /dev/null
Note: See TracBrowser for help on using the browser.