Commit 74892a8b72e6b9ad3fa742d86b63bdaf88bdcbde

Authored by kevin_fourie
1 parent 58a95f92

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 11 PID=""
12 12 ERROR=0
13 13 SERVER=all
  14 +USEXVFB=0
14 15 VDISPLAY="99"
15 16 INSTALL_PATH=@@BITROCK_INSTALLDIR@@
16 17 JAVABIN=$INSTALL_PATH/j2re/bin/java
... ... @@ -45,7 +46,11 @@ SOFFICE_PIDFILE=$INSTALL_PATH/openoffice/soffice.bin.pid
45 46 SOFFICE_PID=""
46 47 SOFFICE_PORT="8100"
47 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 54 SOFFICE_STATUS=""
50 55  
51 56 # Lucene
... ... @@ -54,6 +59,14 @@ LUCENE_PID=""
54 59 LUCENE="$JAVABIN -jar ktlucene.jar"
55 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 70 get_pid() {
58 71 PID=""
59 72 PIDFILE=$1
... ... @@ -117,6 +130,16 @@ get_lucene_pid() {
117 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 143 is_service_running() {
121 144 PID=$1
122 145 if [ "x$PID" != "x" ] && kill -0 $PID 2>/dev/null ; then
... ... @@ -187,6 +210,18 @@ is_lucene_running() {
187 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 225 test_apache_config() {
191 226 if $HTTPD -t; then
192 227 ERROR=0
... ... @@ -283,6 +318,7 @@ stop_apache() {
283 318 }
284 319  
285 320 start_xvfb() {
  321 +if [ $USEXVFB -eq 1 ]; then
286 322 is_xvfb_running
287 323 RUNNING=$?
288 324  
... ... @@ -298,10 +334,12 @@ start_xvfb() {
298 334 echo "$0 $ARG: xvfb could not be started"
299 335 ERROR=3
300 336 fi
  337 + fi
301 338 fi
302 339 }
303 340  
304 341 stop_xvfb() {
  342 +if [ $USEXVFB -eq 1 ]; then
305 343 NO_EXIT_ON_ERROR=$1
306 344 is_xvfb_running
307 345 RUNNING=$?
... ... @@ -321,6 +359,7 @@ stop_xvfb() {
321 359 echo "$0 $ARG: Xvfb could not be stopped"
322 360 ERROR=4
323 361 fi
  362 +fi
324 363 }
325 364  
326 365 start_soffice() {
... ... @@ -399,7 +438,9 @@ stop_lucene() {
399 438 fi
400 439 fi
401 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 444 echo "$0 $ARG: lucene stopped"
404 445 else
405 446 echo "$0 $ARG: lucene could not be stopped"
... ... @@ -407,11 +448,55 @@ stop_lucene() {
407 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 494 help() {
411 495 echo "usage: $0 help"
412 496 echo " $0 (start|stop|restart)"
413 497 echo " $0 (start|stop|restart) apache"
414 498 echo " $0 (start|stop|restart) mysql"
  499 + echo " $0 (start|stop|restart) scheduler"
415 500 echo " $0 (start|stop|restart) soffice"
416 501 echo " $0 (start|stop|restart) lucene"
417 502 echo " $0 (start|stop|restart) xvfb"
... ... @@ -427,14 +512,14 @@ exit 0
427 512 }
428 513  
429 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 516 help
432 517 }
433 518  
434 519 [ $# -lt 1 ] && help
435 520  
436 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 523 SERVER=$2
439 524 fi
440 525  
... ... @@ -457,11 +542,13 @@ case $1 in
457 542 sleep 2
458 543 start_soffice
459 544 start_lucene
  545 + start_scheduler
460 546 fi
461 547 ;;
462 548 stop) if [ "${SERVER}" != "all" ]; then
463 549 stop_${2}
464 550 else
  551 + stop_scheduler "no_exit"
465 552 stop_lucene "no_exit"
466 553 stop_soffice "no_exit"
467 554 stop_xvfb "no_exit"
... ... @@ -474,6 +561,7 @@ case $1 in
474 561 sleep 2
475 562 start_${2}
476 563 else
  564 + stop_scheduler "no_exit"
477 565 stop_lucene "no_exit"
478 566 stop_soffice "no_exit"
479 567 stop_xvfb "no_exit"
... ... @@ -485,6 +573,7 @@ case $1 in
485 573 sleep 2
486 574 start_soffice
487 575 start_lucene
  576 + start_scheduler
488 577 fi
489 578 ;;
490 579 esac
... ...