kopano-server.init.rhel 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. #!/bin/bash
  2. #
  3. # kopano-server Kopano Core Storage Server
  4. #
  5. # chkconfig: 345 85 25
  6. # processname: /usr/sbin/kopano-server
  7. # config: /etc/kopano/server.cfg
  8. # pidfile: /var/run/kopano/server.pid
  9. ### BEGIN INIT INFO
  10. # Provides: kopano-server
  11. # Required-Start: $local_fs $network $remote_fs $syslog
  12. # Required-Stop: $local_fs $network $remote_fs $syslog
  13. # Should-Start: mysqld
  14. # Should-Stop: mysqld
  15. # Short-Description: Kopano Core Storage Server
  16. ### END INIT INFO
  17. SERVERCONFIG=/etc/kopano/server.cfg
  18. SERVERPROGRAM=/usr/sbin/kopano-server
  19. # Sanity checks.
  20. [ -x $SERVERPROGRAM ] || exit 0
  21. SERVERCONFIG_OPT=""
  22. [ ! -z $SERVERCONFIG -a -f $SERVERCONFIG ] && SERVERCONFIG_OPT="-c $SERVERCONFIG"
  23. [ -f /etc/sysconfig/kopano ] && . /etc/sysconfig/kopano
  24. export KOPANO_USERSCRIPT_LOCALE
  25. # Source function library.
  26. . /etc/rc.d/init.d/functions
  27. if [ -z "$KOPANO_LOCALE" ]; then
  28. KOPANO_LOCALE="C"
  29. fi
  30. RETVAL=0
  31. server=`basename $SERVERPROGRAM`
  32. lockfile=/var/lock/subsys/$server
  33. pidfile=/var/run/kopano/server.pid
  34. start() {
  35. # Start in background, always succeeds
  36. echo -n $"Starting $server: "
  37. install -dm0775 -o kopano -g kopano /var/run/kopano
  38. export LC_ALL=$KOPANO_LOCALE
  39. export LANG=$KOPANO_LOCALE
  40. daemon $SERVERPROGRAM $SERVERCONFIG_OPT
  41. RETVAL=$?
  42. unset LC_ALL LANG
  43. echo
  44. [ $RETVAL -eq 0 ] && touch $lockfile
  45. return $RETVAL
  46. }
  47. stop() {
  48. if [ -f /tmp/zarafa-upgrade-lock -o -f /tmp/kopano-upgrade-lock ]; then
  49. echo
  50. echo "Server database upgrade is taking place."
  51. echo "Do not stop this process bacause it may render your database unusable."
  52. echo
  53. exit 1
  54. fi
  55. # Cannot use killproc, because it has no timeout feature;
  56. # the server may take up to 60 seconds to shutdown.
  57. SPID=`cat /var/run/kopano/server.pid 2>/dev/null`
  58. if [ -z "$SPID" -o ! -n "$SPID" ]; then
  59. echo -n "Program ID of $server not found, trying to stop anyway: "
  60. killall $SERVERPROGRAM >/dev/null 2>&1
  61. RETVAL=$?
  62. echo
  63. if [ $RETVAL -eq 0 ]; then
  64. failure $"Stopping $server: "
  65. else
  66. success $"Stopping $server: "
  67. fi
  68. RETVAL=0
  69. else
  70. echo -n $"Stopping $server: "
  71. TIMEOUT=65
  72. /bin/kill $SPID >/dev/null 2>&1
  73. if [ $? -eq 0 ]; then
  74. while [ $TIMEOUT -gt 0 ]; do
  75. /bin/kill -0 $SPID >/dev/null 2>&1 || break
  76. sleep 1
  77. TIMEOUT=$[${TIMEOUT}-1]
  78. done
  79. if [ $TIMEOUT -eq 0 ]; then
  80. failure $"Timeout on stopping $server"
  81. RETVAL=1
  82. else
  83. success $"Stopping $server: "
  84. RETVAL=0
  85. fi
  86. else
  87. failure $"Stopping $server: "
  88. fi
  89. echo
  90. fi
  91. [ $RETVAL -eq 0 ] && rm -f $lockfile $pidfile
  92. return $RETVAL
  93. }
  94. restart() {
  95. stop
  96. start
  97. }
  98. reload() {
  99. echo -n $"Restarting $server: "
  100. killproc $SERVERPROGRAM -SIGHUP
  101. RETVAL=$?
  102. echo
  103. return $RETVAL
  104. }
  105. # See how we were called.
  106. case "$1" in
  107. start)
  108. start
  109. ;;
  110. stop)
  111. stop
  112. ;;
  113. status)
  114. status $server
  115. RETVAL=$?
  116. ;;
  117. restart|force-reload)
  118. restart
  119. ;;
  120. condrestart|try-restart)
  121. if [ -f ${pidfile} ]; then
  122. stop
  123. start
  124. fi
  125. ;;
  126. reload)
  127. reload
  128. ;;
  129. *)
  130. echo $"Usage: $server {start|stop|status|reload|restart|condrestart|force-reload|try-restart}"
  131. RETVAL=1
  132. ;;
  133. esac
  134. exit $RETVAL