control: tags 669406 +patch +pending From 59a9444af50c2b922db6b28cf7bb4476acaba19d Mon Sep 17 00:00:00 2001 From: Dmitry Bogatov <kact...@debian.org> Date: Tue, 14 May 2019 08:07:02 +0000 Subject: [PATCH] Remove overly aggressive optimization from /etc/init.d/rc
The optimization: A start script is not run when the service was already configured to run in the previous runlevel. A stop script is not run when the the service was already configured not to run in the previous runlevel. assumes, that services are never started or stopped manually. It means, that if service was started manually, but disabled in general, on shutdown it will not be duly stoppend. This change remove such optimization. (Closes: #669406) --- debian/src/sysv-rc/rc | 48 ------------------------------------------- 1 file changed, 48 deletions(-) diff --git a/debian/src/sysv-rc/rc b/debian/src/sysv-rc/rc index 025a1c54..3cf51dbb 100755 --- a/debian/src/sysv-rc/rc +++ b/debian/src/sysv-rc/rc @@ -4,11 +4,6 @@ # # Starts/stops services on runlevel changes. # -# Optimization: A start script is not run when the service was already -# configured to run in the previous runlevel. A stop script is not run -# when the the service was already configured not to run in the previous -# runlevel. -# # Authors: # Miquel van Smoorenburg <miqu...@cistron.nl> # Bruce Perens <br...@pixar.com> @@ -167,20 +162,6 @@ then # Check if the script is there. [ ! -f "$i" ] && continue - # - # Find stop script in previous runlevel but - # no start script there. - # - suffix=${i#/etc/rc$runlevel.d/K[0-9][0-9]} - previous_stop=/etc/rc$previous.d/K[0-9][0-9]$suffix - previous_start=/etc/rc$previous.d/S[0-9][0-9]$suffix - # - # If there is a stop script in the previous level - # and _no_ start script there, we don't - # have to re-stop the service. - # - [ -f $previous_stop ] && [ ! -f $previous_start ] && continue - # Stop the service. SCRIPTS="$SCRIPTS $i" done @@ -214,35 +195,6 @@ then do [ ! -f "$i" ] && continue - suffix=${i#/etc/rc$runlevel.d/S[0-9][0-9]} - if [ "$previous" != N ] - then - # - # Find start script in previous runlevel and - # stop script in this runlevel. - # - stop=/etc/rc$runlevel.d/K[0-9][0-9]$suffix - previous_start=/etc/rc$previous.d/S[0-9][0-9]$suffix - # - # If there is a start script in the previous level - # and _no_ stop script in this level, we don't - # have to re-start the service. - # - if [ start = "$ACTION" ] ; then - [ -f $previous_start ] && [ ! -f $stop ] && continue - else - # Workaround for the special - # handling of runlevels 0 and 6. - previous_stop=/etc/rc$previous.d/K[0-9][0-9]$suffix - # - # If there is a stop script in the previous level - # and _no_ start script there, we don't - # have to re-stop the service. - # - [ -f $previous_stop ] && [ ! -f $previous_start ] && continue - fi - - fi SCRIPTS="$SCRIPTS $i" done startup $ACTION $SCRIPTS -- Note, that I send and fetch email in batch, once every 24 hours. If matter is urgent, try https://t.me/kaction --
pgpzNaaAWALrs.pgp
Description: PGP signature