Commit b498b1be892e44433bcb7c2728943475f8a2de75

Authored by Kevin Fourie
1 parent 3a9d3705

Merged in from STABLE trunk...

KTS-2568
"Add scheduler service to Linux"
Added.

Committed By: Kevin Fourie
Reviewed By: Conrad Vermeulen


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@7495 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing 1 changed file with 93 additions and 4 deletions
examples/linux/init/dmsctl.sh
@@ -11,6 +11,7 @@ RETVAL=0 @@ -11,6 +11,7 @@ RETVAL=0
11 PID="" 11 PID=""
12 ERROR=0 12 ERROR=0
13 SERVER=all 13 SERVER=all
  14 +USEXVFB=0
14 VDISPLAY="99" 15 VDISPLAY="99"
15 INSTALL_PATH=@@BITROCK_INSTALLDIR@@ 16 INSTALL_PATH=@@BITROCK_INSTALLDIR@@
16 JAVABIN=$INSTALL_PATH/j2re/bin/java 17 JAVABIN=$INSTALL_PATH/j2re/bin/java
@@ -45,7 +46,11 @@ SOFFICE_PIDFILE=$INSTALL_PATH/openoffice/soffice.bin.pid @@ -45,7 +46,11 @@ SOFFICE_PIDFILE=$INSTALL_PATH/openoffice/soffice.bin.pid
45 SOFFICE_PID="" 46 SOFFICE_PID=""
46 SOFFICE_PORT="8100" 47 SOFFICE_PORT="8100"
47 SOFFICEBIN=$INSTALL_PATH/openoffice/program/soffice.bin 48 SOFFICEBIN=$INSTALL_PATH/openoffice/program/soffice.bin
48 -SOFFICE="$SOFFICEBIN -nofirststartwizard -nologo -headless -display :$VDISPLAY -accept=socket,host=localhost,port=$SOFFICE_PORT;urp;StarOffice.ServiceManager" 49 +if [ $USEXVFB -eq 1 ]; then
  50 + SOFFICE="$SOFFICEBIN -nofirststartwizard -nologo -headless -display :$VDISPLAY -accept=socket,host=localhost,port=$SOFFICE_PORT;urp;StarOffice.ServiceManager"
  51 +else
  52 + SOFFICE="$SOFFICEBIN -nofirststartwizard -nologo -headless -accept=socket,host=localhost,port=$SOFFICE_PORT;urp;StarOffice.ServiceManager"
  53 +fi
49 SOFFICE_STATUS="" 54 SOFFICE_STATUS=""
50 55
51 # Lucene 56 # Lucene
@@ -54,6 +59,14 @@ LUCENE_PID="" @@ -54,6 +59,14 @@ LUCENE_PID=""
54 LUCENE="$JAVABIN -jar ktlucene.jar" 59 LUCENE="$JAVABIN -jar ktlucene.jar"
55 LUCENE_STATUS="" 60 LUCENE_STATUS=""
56 61
  62 +# Scheduler
  63 +SCHEDULER_PATH="$INSTALL_PATH/knowledgeTree/bin/"
  64 +SCHEDULER_PIDFILE=$INSTALL_PATH/knowledgeTree/bin/scheduler.pid
  65 +SCHEDULER_PID=""
  66 +SCHEDULERBIN="$INSTALL_PATH/knowledgeTree/bin/taskrunner.sh"
  67 +SCHEDULER="$SCHEDULERBIN"
  68 +SCHEDULER_STATUS=""
  69 +
57 get_pid() { 70 get_pid() {
58 PID="" 71 PID=""
59 PIDFILE=$1 72 PIDFILE=$1
@@ -117,6 +130,16 @@ get_lucene_pid() { @@ -117,6 +130,16 @@ get_lucene_pid() {
117 fi 130 fi
118 } 131 }
119 132
  133 +get_scheduler_pid() {
  134 + get_pid $SCHEDULER_PIDFILE
  135 + if [ ! $PID ]; then
  136 + return
  137 + fi
  138 + if [ $PID -gt 0 ]; then
  139 + SCHEDULER_PID=$PID
  140 + fi
  141 +}
  142 +
120 is_service_running() { 143 is_service_running() {
121 PID=$1 144 PID=$1
122 if [ "x$PID" != "x" ] && kill -0 $PID 2>/dev/null ; then 145 if [ "x$PID" != "x" ] && kill -0 $PID 2>/dev/null ; then
@@ -187,6 +210,18 @@ is_lucene_running() { @@ -187,6 +210,18 @@ is_lucene_running() {
187 return $RUNNING 210 return $RUNNING
188 } 211 }
189 212
  213 +is_scheduler_running() {
  214 + get_scheduler_pid
  215 + is_service_running $SCHEDULER_PID
  216 + RUNNING=$?
  217 + if [ $RUNNING -eq 0 ]; then
  218 + SCHEDULER_STATUS="scheduler not running"
  219 + else
  220 + SCHEDULER_STATUS="scheduler already running"
  221 + fi
  222 + return $RUNNING
  223 +}
  224 +
190 test_apache_config() { 225 test_apache_config() {
191 if $HTTPD -t; then 226 if $HTTPD -t; then
192 ERROR=0 227 ERROR=0
@@ -283,6 +318,7 @@ stop_apache() { @@ -283,6 +318,7 @@ stop_apache() {
283 } 318 }
284 319
285 start_xvfb() { 320 start_xvfb() {
  321 +if [ $USEXVFB -eq 1 ]; then
286 is_xvfb_running 322 is_xvfb_running
287 RUNNING=$? 323 RUNNING=$?
288 324
@@ -298,10 +334,12 @@ start_xvfb() { @@ -298,10 +334,12 @@ start_xvfb() {
298 echo "$0 $ARG: xvfb could not be started" 334 echo "$0 $ARG: xvfb could not be started"
299 ERROR=3 335 ERROR=3
300 fi 336 fi
  337 + fi
301 fi 338 fi
302 } 339 }
303 340
304 stop_xvfb() { 341 stop_xvfb() {
  342 +if [ $USEXVFB -eq 1 ]; then
305 NO_EXIT_ON_ERROR=$1 343 NO_EXIT_ON_ERROR=$1
306 is_xvfb_running 344 is_xvfb_running
307 RUNNING=$? 345 RUNNING=$?
@@ -321,6 +359,7 @@ stop_xvfb() { @@ -321,6 +359,7 @@ stop_xvfb() {
321 echo "$0 $ARG: Xvfb could not be stopped" 359 echo "$0 $ARG: Xvfb could not be stopped"
322 ERROR=4 360 ERROR=4
323 fi 361 fi
  362 +fi
324 } 363 }
325 364
326 start_soffice() { 365 start_soffice() {
@@ -399,7 +438,9 @@ stop_lucene() { @@ -399,7 +438,9 @@ stop_lucene() {
399 fi 438 fi
400 fi 439 fi
401 get_lucene_pid 440 get_lucene_pid
402 - if killall $JAVABIN ; then 441 + cd $INSTALL_PATH/knowledgeTree/search2/indexing/bin
  442 + $INSTALL_PATH/php/bin/php shutdown.php positive >/dev/null 2>&1 &
  443 + if [ $? -eq 0 ]; then
403 echo "$0 $ARG: lucene stopped" 444 echo "$0 $ARG: lucene stopped"
404 else 445 else
405 echo "$0 $ARG: lucene could not be stopped" 446 echo "$0 $ARG: lucene could not be stopped"
@@ -407,11 +448,55 @@ stop_lucene() { @@ -407,11 +448,55 @@ stop_lucene() {
407 fi 448 fi
408 } 449 }
409 450
  451 +start_scheduler() {
  452 + is_scheduler_running
  453 + RUNNING=$?
  454 +
  455 + if [ $RUNNING -eq 1 ]; then
  456 + echo "$0 $ARG: scheduler (pid $SCHEDULER_PID) already running"
  457 + else
  458 + $SCHEDULER >/dev/null 2>&1 &
  459 + if [ $? -eq 0 ]; then
  460 + echo "$0 $ARG: scheduler started"
  461 + ps ax | grep $SCHEDULERBIN | awk {'print $1'} > $SCHEDULER_PIDFILE
  462 + sleep 2
  463 + else
  464 + echo "$0 $ARG: scheduler could not be started"
  465 + ERROR=3
  466 + fi
  467 + fi
  468 +}
  469 +
  470 +stop_xvfb() {
  471 +if [ $USEXVFB -eq 1 ]; then
  472 + NO_EXIT_ON_ERROR=$1
  473 + is_xvfb_running
  474 + RUNNING=$?
  475 +
  476 + if [ $RUNNING -eq 0 ]; then
  477 + echo "$0 $ARG: $XVFB_STATUS"
  478 + if [ "x$NO_EXIT_ON_ERROR" != "xno_exit" ]; then
  479 + exit
  480 + else
  481 + return
  482 + fi
  483 + fi
  484 + get_xvfb_pid
  485 + if killall $XVFBBIN ; then
  486 + echo "$0 $ARG: Xvfb stopped"
  487 + else
  488 + echo "$0 $ARG: Xvfb could not be stopped"
  489 + ERROR=4
  490 + fi
  491 +fi
  492 +}
  493 +
410 help() { 494 help() {
411 echo "usage: $0 help" 495 echo "usage: $0 help"
412 echo " $0 (start|stop|restart)" 496 echo " $0 (start|stop|restart)"
413 echo " $0 (start|stop|restart) apache" 497 echo " $0 (start|stop|restart) apache"
414 echo " $0 (start|stop|restart) mysql" 498 echo " $0 (start|stop|restart) mysql"
  499 + echo " $0 (start|stop|restart) scheduler"
415 echo " $0 (start|stop|restart) soffice" 500 echo " $0 (start|stop|restart) soffice"
416 echo " $0 (start|stop|restart) lucene" 501 echo " $0 (start|stop|restart) lucene"
417 echo " $0 (start|stop|restart) xvfb" 502 echo " $0 (start|stop|restart) xvfb"
@@ -427,14 +512,14 @@ exit 0 @@ -427,14 +512,14 @@ exit 0
427 } 512 }
428 513
429 noserver() { 514 noserver() {
430 - echo -e "ERROR: $1 is not a valid server. Please, select 'mysql', 'apache', 'soffice', 'lucene' or 'xvfb'\n" 515 + echo -e "ERROR: $1 is not a valid server. Please, select 'mysql', 'apache', 'scheduler', 'soffice', 'lucene' or 'xvfb'\n"
431 help 516 help
432 } 517 }
433 518
434 [ $# -lt 1 ] && help 519 [ $# -lt 1 ] && help
435 520
436 if [ ! -z ${2} ]; then 521 if [ ! -z ${2} ]; then
437 - [ "${2}" != "mysql" ] && [ "${2}" != "apache" ] && [ "${2}" != "soffice" ] && [ "${2}" != "lucene" ] && [ "${2}" != "xvfb" ] && noserver $2 522 + [ "${2}" != "mysql" ] && [ "${2}" != "apache" ] && [ "${2}" != "scheduler" ] && [ "${2}" != "soffice" ] && [ "${2}" != "lucene" ] && [ "${2}" != "xvfb" ] && noserver $2
438 SERVER=$2 523 SERVER=$2
439 fi 524 fi
440 525
@@ -457,11 +542,13 @@ case $1 in @@ -457,11 +542,13 @@ case $1 in
457 sleep 2 542 sleep 2
458 start_soffice 543 start_soffice
459 start_lucene 544 start_lucene
  545 + start_scheduler
460 fi 546 fi
461 ;; 547 ;;
462 stop) if [ "${SERVER}" != "all" ]; then 548 stop) if [ "${SERVER}" != "all" ]; then
463 stop_${2} 549 stop_${2}
464 else 550 else
  551 + stop_scheduler "no_exit"
465 stop_lucene "no_exit" 552 stop_lucene "no_exit"
466 stop_soffice "no_exit" 553 stop_soffice "no_exit"
467 stop_xvfb "no_exit" 554 stop_xvfb "no_exit"
@@ -474,6 +561,7 @@ case $1 in @@ -474,6 +561,7 @@ case $1 in
474 sleep 2 561 sleep 2
475 start_${2} 562 start_${2}
476 else 563 else
  564 + stop_scheduler "no_exit"
477 stop_lucene "no_exit" 565 stop_lucene "no_exit"
478 stop_soffice "no_exit" 566 stop_soffice "no_exit"
479 stop_xvfb "no_exit" 567 stop_xvfb "no_exit"
@@ -485,6 +573,7 @@ case $1 in @@ -485,6 +573,7 @@ case $1 in
485 sleep 2 573 sleep 2
486 start_soffice 574 start_soffice
487 start_lucene 575 start_lucene
  576 + start_scheduler
488 fi 577 fi
489 ;; 578 ;;
490 esac 579 esac