root/trunk/scripts/start_

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

version 0.2.0

  • Property svn:executable set to
Line 
1 #!/bin/bash
2
3 L=`basename $0`
4 D='+[%Y-%m-%d %H:%M:%S]'
5
6 SERVICE=$1
7 shift
8 COMPONENT=$1
9 shift
10
11 if [ "$SERVICE" = "" ] || [ "$COMPONENT" = "" ]; then
12   echo "$(date "$D") [$L] : Usage: $L SERVICE COMPONENT"
13   exit 1
14 fi
15
16 BINARY=`readlink -f "../bin/$COMPONENT"`
17 if [ ! -x "$BINARY" ]; then
18   echo "$(date "$D") [$L] : \"$BINARY\" does not exist or is not executable"
19   exit 4
20 fi
21
22 FULL=$SERVICE/$COMPONENT
23 FULL_N=${FULL//\//_}
24
25 STOPFILE="/tmp/whispercast.$FULL_N.stop"
26
27 CMD="$BINARY --undefok=service --service=$SERVICE --logdir=../var/log/$SERVICE --flagfile=../etc/ini/$FULL.ini"
28
29 echo "$(date "$D") [$L] : Killing all previous \"$FULL\" processes..."
30 pkill -INT -f "$CMD" > /dev/null 2>&1
31 echo "$(date "$D") [$L] : Done"
32 echo -n "$(date "$D") [$L] : Waiting for \"$FULL\"..."
33 while `pgrep -f "$CMD" > /dev/null 2>&1`;
34 do
35   echo -n ".";
36   sleep 1;
37 done
38
39 echo
40 echo "$(date "$D") [$L] : Done"
41 `sleep 1`
42
43 LOOP=1
44 while [[ $LOOP -gt 0 ]]; do
45   echo -n "$(date "$D") [$L] : Testing for stop file (\"$STOPFILE\") => ";
46   if [ -e $STOPFILE ]; then
47
48     echo "Found"
49     LOOP=0
50
51   else
52
53     echo "Not found"
54
55     echo "$(date "$D") [$L] : Setting max thread stack size to 2MB...";
56     ulimit -s 1024 > /dev/null
57
58     echo "$(date "$D") [$L] : Executing \"$CMD\"..";
59     `./shell $CMD 2>> ../var/log/$FULL-stderr.LOG`
60     `sleep 1`
61     echo "$(date "$D") [$L] : Process terminated...";
62
63     LOG=0
64     while [ -e "../var/log/$FULL.LOG.$LOG" ]; do
65       let LOG=LOG+1
66     done
67     echo "Executing mv ../var/log/$FULL.LOG ../var/log/$FULL.LOG.$LOG"
68     `mv ../var/log/$FULL.LOG ../var/log/$FULL.LOG.$LOG`
69
70   fi
71
72 done
Note: See TracBrowser for help on using the browser.