improve-init-scripts.patch 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. Subject: Improve init scripts
  2. Author: Christoph Biedl <debian.axhn@manchmal.in-ulm.de>
  3. Date: 2018-09-23
  4. Forwarded: not-yet
  5. --- a/contrib/persistence/vblade.init.in
  6. +++ b/contrib/persistence/vblade.init.in
  7. @@ -8,7 +8,7 @@
  8. # Default-Start: 2 3 4 5
  9. # Default-Stop: 0 1 6
  10. # Short-Description: vblade exports
  11. -# Description: Manage all vlbade exports defined in
  12. +# Description: Manage all vblade exports defined in
  13. # /etc/vblade.conf.d/
  14. ### END INIT INFO
  15. @@ -98,6 +98,10 @@
  16. --exec $ionice "$VBLADE" -- \
  17. $shelf $slot $netif $filename $options \
  18. || return 2
  19. + sleep 1
  20. + start-stop-daemon --start --quiet \
  21. + --pidfile "$PIDFILE" --exec "$VBLADE" --test > /dev/null \
  22. + && return 2
  23. [% ELSIF control == 'daemon' -%]
  24. "$DAEMON" \
  25. --running \
  26. @@ -112,6 +116,12 @@
  27. --stdout daemon.notice \
  28. --stderr daemon.err -- \
  29. $VBLADE $options $shelf $slot $netif $filename || return 2
  30. + sleep 1
  31. + "$DAEMON" \
  32. + --running \
  33. + --name "$INSTANCE" \
  34. + --pidfiles "$PIDDIR" \
  35. + || return 2
  36. [% END -%]
  37. }
  38. @@ -168,7 +178,10 @@
  39. do_start "$INSTANCE" "$CONFIG"
  40. case "$?" in
  41. 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
  42. - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
  43. + 2)
  44. + [ "$VERBOSE" != no ] && log_end_msg 1
  45. + EXIT=1
  46. + ;;
  47. esac
  48. ;;
  49. stop)
  50. @@ -176,7 +189,10 @@
  51. do_stop "$INSTANCE"
  52. case "$?" in
  53. 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
  54. - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
  55. + 2)
  56. + [ "$VERBOSE" != no ] && log_end_msg 1
  57. + EXIT=1
  58. + ;;
  59. esac
  60. ;;
  61. status)
  62. --- a/contrib/persistence/vblade.init.lsb-daemon
  63. +++ b/contrib/persistence/vblade.init.lsb-daemon
  64. @@ -30,6 +30,14 @@
  65. # Define LSB functions
  66. . /lib/lsb/init-functions
  67. +missing () {
  68. + local MESSAGE
  69. +
  70. + MESSAGE="Did not define $1"
  71. + [ "$VERBOSE" != no ] && log_daemon_msg "$INSTANCE.conf" "$MESSAGE"
  72. + return 1
  73. +}
  74. +
  75. # Start a vblade instance
  76. #
  77. # Return
  78. @@ -37,8 +45,10 @@
  79. # 1 if daemon was already running
  80. # 2 if daemon could not be started
  81. do_start () {
  82. - local INSTANCE="$1"
  83. - local CONFIG="$2"
  84. + local INSTANCE
  85. + local CONFIG
  86. + INSTANCE="$1"
  87. + CONFIG="$2"
  88. sh -n "$CONFIG" 2>/dev/null || return 2
  89. @@ -51,10 +61,10 @@
  90. . "$CONFIG"
  91. - [ "$netif" ] || return 2
  92. - [ "$shelf" ] || return 2
  93. - [ "$slot" ] || return 2
  94. - [ "$filename" ] || return 2
  95. + [ "$netif" ] || missing netif || return 2
  96. + [ "$shelf" ] || missing shelf || return 2
  97. + [ "$slot" ] || missing slot || return 2
  98. + [ "$filename" ] || missing filename || return 2
  99. if [ "$ionice" ] ; then
  100. if [ -x "$IONICE" ] ; then
  101. @@ -77,6 +87,12 @@
  102. --stdout daemon.notice \
  103. --stderr daemon.err -- \
  104. $VBLADE $options $shelf $slot $netif $filename || return 2
  105. + sleep 1
  106. + "$DAEMON" \
  107. + --running \
  108. + --name "$INSTANCE" \
  109. + --pidfiles "$PIDDIR" \
  110. + || return 2
  111. }
  112. # Stop a vblade instance
  113. @@ -99,12 +115,14 @@
  114. --pidfiles "$PIDDIR" \
  115. --stop || return 2
  116. # Wait until the process is gone
  117. - for i in $(seq 1 10) ; do
  118. + for i in $(seq 1 3) ; do
  119. "$DAEMON" \
  120. --running \
  121. --name "$INSTANCE" \
  122. --pidfiles "$PIDDIR" || return 0
  123. + sleep 1
  124. done
  125. + # If it still didn't stop..
  126. return 2
  127. }
  128. @@ -121,7 +139,10 @@
  129. do_start "$INSTANCE" "$CONFIG"
  130. case "$?" in
  131. 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
  132. - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
  133. + 2)
  134. + [ "$VERBOSE" != no ] && log_end_msg 1
  135. + EXIT=1
  136. + ;;
  137. esac
  138. ;;
  139. stop)
  140. @@ -129,7 +150,10 @@
  141. do_stop "$INSTANCE"
  142. case "$?" in
  143. 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
  144. - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
  145. + 2)
  146. + [ "$VERBOSE" != no ] && log_end_msg 1
  147. + EXIT=1
  148. + ;;
  149. esac
  150. ;;
  151. status)