Предотвращение перезапуска rabbitmq-сервера при обновлении erlang

199
Alia Ramli Ramli

Можно ли предотвратить перезапуск rabbitmq-сервера во время обновления erlang?

Как мы знаем, во время обновления erlang будет вызван скрипт erlang-base.prerm.

Этот скрипт проверит, есть ли другие сервисы, которые зависят от erlang.

Если там есть. он попытается остановить службу и снова запустить ее после завершения обновления erlang.

case "$1" in remove|upgrade) echo -n "Searching for services which depend on erlang and should be stopped..." # find all init scripts and packages they belong inits=$(dpkg -S '/etc/init.d/*' 2>/dev/null | sed -e's:/etc/init.d/::') # filter the list of the packages packs=$(echo $inits | sed -e's/:[[:space:]]\+[^[:space:]]*//g' | sed -e's/ /\n/g' | sort -u) # find packages, which depend on erlang packs=$(dpkg -s $packs 2>/dev/null | egrep '^Package:|^Status:|^Depends' | awk ' else if ($0 ~ /^Status:.* installed$/) else if ((inst==1) && ($0 ~ /^Depends:.* erlang/)) }') # construct services list from the packages services="" for p in $packs ; do service=$(echo $inits | sed -e's/\([^:]\) /\1\n/g' | awk "/^$p:/ ") services="$services $service" done services=$(echo $services | tr '\n' ' ' | sed -e's/\(^[[:space:]]*\|[[:space:]]*$\)//g')  if [ -z "$services" ] ; then echo "none found." else echo "found: $services." echo "Stopping services which depend on erlang" rl=$(runlevel | awk '') failed="" for service in $services ; do if [ -f /usr/share/file-rc/rc -o -f /usr/lib/file-rc/rc ] && [ -f /etc/runlevel.conf ] ; then idl=$(filerc $rl $service) else idl=$(ls /etc/rc$.d/S??$ 2> /dev/null | head -1) fi if [ -n "$idl" ] ; then echo -n " $service: stopping..." if $idl stop > /dev/null 2>&1 ; then echo "done." else echo "failed. ($?)" failed="$failed $service" fi fi 

Есть ли способ предотвратить это? я хотел бы вручную перезапустить rabbitmq-сервер ..

0

0 ответов на вопрос