4
0

generic 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. #!/bin/sh
  2. #
  3. # corosync Start the Corosync Cluster Engine
  4. #
  5. # Author: Andrew Beekhof <abeekhof@suse.de>
  6. # License: Revised BSD
  7. #
  8. # chkconfig: - 20 20
  9. # processname: corosync
  10. # description: Corosync Cluster Engine
  11. #
  12. ### BEGIN INIT INFO
  13. # Description: corosync....
  14. #
  15. # Short-Description: Corosync Cluster Engine.
  16. # Provides: corosync
  17. # Required-Start: $network
  18. # Should-Start: $syslog
  19. # Required-Stop: $network
  20. # Default-Start: 3 5
  21. # Default-Stop: 0 6
  22. ### END INIT INFO
  23. do_force=0
  24. prog="corosync"
  25. lockfile="/var/lock/subsys/$prog"
  26. internal_status() {
  27. killall -0 corosync > /dev/null 2>&1
  28. return $?
  29. }
  30. status() {
  31. if
  32. ! internal_status
  33. then
  34. echo "Stopped"
  35. return 7
  36. fi
  37. echo "Running"
  38. return 0
  39. }
  40. start() {
  41. echo -n $"Starting Corosync Cluster Engine ($prog): "
  42. if
  43. ! internal_status
  44. then
  45. echo -n "starting... "
  46. $prog 2>&1 > /dev/null 2>&1
  47. echo -n "rc=$?: "
  48. fi
  49. sleep 2 # give it time to fail... $? isn't definitive
  50. if
  51. internal_status
  52. then
  53. echo "OK"
  54. return 0
  55. fi
  56. echo "Failed"
  57. return 1
  58. }
  59. do_force=0
  60. do_forever=1
  61. stop() {
  62. echo -n $"Stopping Corosync Cluster Engine ($prog): "
  63. killall -QUIT corosync
  64. if [ $do_forever = 0 ]; then
  65. for i in 1 2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20; do
  66. if
  67. internal_status
  68. then
  69. sleep 2
  70. echo -n "."
  71. else
  72. rm -f "$lockfile"
  73. echo "OK"
  74. return 0
  75. fi
  76. done
  77. if [ $do_force = 1 ]; then
  78. echo -n "Escalating... "
  79. killall -KILL corosync
  80. sleep 5
  81. if
  82. ! internal_status
  83. then
  84. rm -f "$lockfile"
  85. echo "OK"
  86. return 0
  87. fi
  88. fi
  89. echo "Failed"
  90. return 1
  91. fi
  92. while
  93. internal_status
  94. do
  95. sleep 1
  96. echo -n "."
  97. done
  98. rm -f "$lockfile"
  99. echo "OK"
  100. return 0
  101. }
  102. restart() {
  103. stop
  104. start
  105. }
  106. case "$1" in
  107. start|stop|restart)
  108. $1
  109. ;;
  110. force-stop)
  111. do_force=1
  112. stop
  113. ;;
  114. reload|force-reload)
  115. restart
  116. ;;
  117. condrestart|try-restart)
  118. [ ! -f "$lockfile" ] || restart
  119. ;;
  120. status)
  121. status $prog
  122. ;;
  123. *)
  124. echo $"Usage: $0 {start|stop|restart|try-restart|condrestart|reload|force-reload|force-stop|status}"
  125. exit 2
  126. esac