]> git.argeo.org Git - lgpl/argeo-commons.git/blob - osgi/dist/osgi-boot/src/main/rpm/usr/sbin/osgi-service
6fbb1e41cdab9d9960e9c99c6733b1cfcd6ac862
[lgpl/argeo-commons.git] / osgi / dist / osgi-boot / src / main / rpm / usr / sbin / osgi-service
1 #!/bin/sh
2
3 JVM=java
4 . /etc/osgiboot/osgi-service-settings.sh
5
6 APP=$1
7
8 CONF_DIR=/etc/$APP
9 if [ -f $CONF_DIR/settings.sh ];then
10 . $CONF_DIR/settings.sh
11 fi
12
13 LIB_DIR=/usr/share/$APP/lib
14
15 # read/write
16 EXEC_DIR=/var/lib/$APP
17 DATA_DIR=$EXEC_DIR/data
18 CONF_RW=$EXEC_DIR/conf
19 LOG_DIR=/var/log/$APP
20 LOG_FILE=$LOG_DIR/$APP.log
21
22 RUN_DIR=/var/run
23 PID_FILE=$RUN_DIR/$APP.pid
24 SHUTDOWN_FILE=$RUN_DIR/$APP.shutdown
25
26 OSGI_INSTALL_AREA=/usr/share/osgiboot/lib
27 OSGI_FRAMEWORK=$OSGI_INSTALL_AREA/org.eclipse.osgi.jar
28
29 RETVAL=0
30
31 start() {
32 if [ ! -d $LOG_DIR ];then
33 mkdir -m 0750 -p $LOG_DIR
34 touch $LOG_FILE
35 chown -R $APP.$APP $LOG_DIR
36 fi
37
38 cp --preserve $CONF_DIR/config.ini $CONF_RW/config.ini
39 touch $SHUTDOWN_FILE
40 cd $EXEC_DIR
41 # start as user $APP
42 sudo -u $APP $JVM \
43 -Dosgi.bundles="org.argeo.osgi.boot.jar@start" \
44 -Dargeo.osgi.bundles="$CONF_DIR/modules;in=*,$LIB_DIR;in=*" \
45 -Dargeo.osgi.shutdownFile="$SHUTDOWN_FILE" \
46 -Dlog4j.configuration="file:$CONF_DIR/log4j.properties" \
47 $JAVA_OPTS -jar $OSGI_FRAMEWORK \
48 -clean \
49 -configuration "$CONF_RW" \
50 -data "$DATA_DIR" \
51 &>> $LOG_FILE &
52 PID=$!
53 echo $PID > $PID_FILE
54 echo Started $APP with pid $PID
55 return $RETVAL
56 }
57
58 stop() {
59 if [ -f $PID_FILE ];then
60 PID=`cat $PID_FILE`
61 else
62 echo $APP is not running
63 return $RETVAL
64 fi
65 rm -f $SHUTDOWN_FILE
66 timeout 5m sh << EOF
67 while kill -0 $PID &> /dev/null; do sleep 1; done
68 EOF
69 TIMEOUT_EXIT=$?
70 if [ $TIMEOUT_EXIT -eq 124 ];then
71 kill -9 $PID
72 fi
73 rm -f $PID_FILE
74 echo Stopped $APP with pid $PID
75 return $RETVAL
76 }
77
78 # See how we were called.
79 case "$2" in
80 start)
81 start
82 ;;
83 stop)
84 stop
85 ;;
86 restart)
87 stop
88 start
89 RETVAL=$?
90 ;;
91 status)
92 if [ -f $PID_FILE ];then
93 PID=`cat $PID_FILE`
94 echo $APP is running with pid $PID ...
95 else
96 echo $APP is not running
97 fi
98 ;;
99 *)
100 echo $"Usage: $0 {start|stop|restart|status}"
101 exit 1
102 esac