]> git.argeo.org Git - lgpl/argeo-commons.git/blob - dist/argeo-node/base/bin/argeo-cms
[maven-release-plugin] prepare release argeo-commons-2.1.87
[lgpl/argeo-commons.git] / dist / argeo-node / base / bin / argeo-cms
1 #!/bin/sh
2 APP=argeo
3
4 JVM=java
5
6 BIN_DIR=`dirname "$0"`
7 BASE_DIR=$BIN_DIR/..
8
9 # Directories and files
10 CONF_DIR=$BASE_DIR/etc/$APP
11 CONF_DIRS=$CONF_DIR/conf.d
12 #BASE_POLICY_ALL=/usr/share/$APP/all.policy
13 BASE_CONFIG_INI=$BASE_DIR/share/$APP/config.ini
14
15 #EXEC_DIR=$BASE_DIR/var/lib/$APP
16 EXEC_DIR=.
17 DATA_DIR=$EXEC_DIR/data
18 CONF_RW=$EXEC_DIR/state
19 CONFIG_INI=$CONF_RW/config.ini
20
21 OSGI_INSTALL_AREA=$BASE_DIR/share/osgi/boot
22 OSGI_FRAMEWORK=$OSGI_INSTALL_AREA/org.eclipse.osgi.jar
23
24 # Overwrite variables
25 if [ -f $CONF_DIR/settings.sh ];then
26 . $CONF_DIR/settings.sh
27 fi
28
29 RETVAL=0
30
31 start() {
32 mkdir -p $CONF_RW
33 mkdir -p $DATA_DIR
34
35 # Merge config files
36 printf "## Equinox configuration - Generated by /usr/sbin/nodectl ##\n\n" > $CONFIG_INI
37 cat $BASE_CONFIG_INI >> $CONFIG_INI
38 printf "\n##\n## $CONF_DIR/$APP.ini\n##\n\n" >> $CONFIG_INI
39 cat $CONF_DIR/$APP.ini >> $CONFIG_INI
40 for file in `ls -v $CONF_DIRS/*.ini`; do
41 printf "\n##\n## $file\n##\n\n" >> $CONFIG_INI
42 cat $file >> $CONFIG_INI
43 done;
44
45 cd $EXEC_DIR
46 $JVM \
47 -Dlog4j.configuration="file:$CONF_DIR/log4j.properties" \
48 $JAVA_OPTS -jar $OSGI_FRAMEWORK \
49 -configuration "$CONF_RW" \
50 -data "$DATA_DIR"
51 }
52
53 reload() {
54 echo Not yet implemented
55 }
56
57 stop() {
58 if [ -f $PID_FILE ];then
59 PID=`cat $PID_FILE`
60 kill -0 $PID &> /dev/null
61 PID_EXISTS=$?
62 if [ $PID_EXISTS -ne 0 ]; then
63 echo Dead $APP process with pid $PID, removing $PID_FILE
64 rm -f $PID_FILE
65 RETVAL=1
66 return $RETVAL
67 fi
68 else
69 echo $APP is not running
70 RETVAL=1
71 return $RETVAL
72 fi
73
74 # notifies application by removing the shutdown file
75 # rm -f $SHUTDOWN_FILE
76 kill $PID
77
78 # wait 10 min for application to shutdown, then kill it
79 TIMEOUT=$((10*60))
80 BEGIN=$(date +%s)
81 while kill -0 $PID &> /dev/null
82 do
83 sleep 1
84 NOW=$(date +%s)
85 DURATION=$(($NOW-$BEGIN))
86 if [ $DURATION -gt $TIMEOUT ]; then
87 kill -9 $PID
88 echo Forcibly killed $APP with pid $PID
89 RETVAL=1
90 fi
91 done
92
93 # remove pid file
94 rm -f $PID_FILE
95 return $RETVAL
96 }
97
98 status() {
99 if [ -f $PID_FILE ];then
100 PID=`cat $PID_FILE`
101 else
102 echo $APP is not running
103 return $RETVAL
104 fi
105 kill -0 $PID &> /dev/null
106 PID_EXISTS=$?
107 if [ $PID_EXISTS -eq 0 ]; then
108 echo $APP is running with pid $PID ...
109 else
110 echo No $APP process with pid $PID, removing $PID_FILE
111 rm -f $PID_FILE
112 fi
113 return $RETVAL
114 }
115
116 # main
117 case "$1" in
118 start)
119 start
120 ;;
121 reload)
122 reload
123 ;;
124 stop)
125 stop
126 ;;
127 status)
128 status
129 ;;
130 *)
131 start
132 ;;
133 esac