[Pkg-sysvinit-devel] Bug#680293: update-rc.d manual: `update-rc.d remove name` works when `/etc/init.d/name` exists

Roger Leigh rleigh at codelibre.net
Wed Jul 4 20:33:33 UTC 2012


On Wed, Jul 04, 2012 at 10:17:10PM +0200, Paul Menzel wrote:
> 
> the manual of `update-rc.d` contains the following paragraph.
> 
>         $ man update-rc.d
>         […]
>         When invoked with the remove option, update-rc.d removes any
>         links in the /etc/rcrunlevel.d directories to the
>         script /etc/init.d/name. The script must have been deleted
>         already.  If the script is still present then update-rc.d aborts
>         with an error message.
>         […]

This is my understanding.  It should only remove the links if you use
"-f remove" to force removal.

> It looks like `update-rc.d remove name` still works though when the
> script in `/etc/init.d/name` is not removed beforehand.
> 
>         $ sudo update-rc.d pulseaudio remove
>         update-rc.d: using dependency based boot sequencing
>         $ ls -l /etc/init.d/pulseaudio
>         -rwxr-xr-x 1 root root 2227  1. Okt 2011  /etc/init.d/pulseaudio
>         $ ls -l /etc/rc*.d/*audio
>         ls: Zugriff auf /etc/rc*.d/*audio nicht möglich: Datei oder Verzeichnis nicht gefunden
>         $ sudo service pulseaudio stop
>         PulseAudio configured for per-user sessions ... (warning).
> 
> Does the manual need updating?

No, I think the manual is correct and update-rc.d is not behaving as
documented.  Mind you, I've not seen this before.  But I can also
reproduce it:

% ls /etc/init.d/cups 
/etc/init.d/cups
% ls /etc/rc*.d/*cups
/etc/rc1.d/K01cups  /etc/rc2.d/S04cups  /etc/rc3.d/S04cups  /etc/rc4.d/S04cups  /etc/rc5.d/S04cups
% sudo update-rc.d cups remove
update-rc.d: using dependency based boot sequencing
% ls /etc/rc*.d/*cups         
zsh: no matches found: /etc/rc*.d/*cups
% sudo update-rc.d cups defaults
update-rc.d: using dependency based boot sequencing
% ls /etc/rc*.d/*cups           
/etc/rc1.d/K01cups  /etc/rc2.d/S04cups  /etc/rc3.d/S04cups  /etc/rc4.d/S04cups  /etc/rc5.d/S04cups

I'm fairly sure this didn't happen until recently.  But there were only
two changes to update-rc.d in 2012, and both were trivial changes which
didn't affect this.  This will need investigating in more detail.

> I guess the bug has been present for a longer time, so please update the
> version information accordingly.
> 
> Two more or less related notes.
> 
> 1. The printing of `update-rc.d: using dependency based boot sequencing`
> is unexpected.

It's always done this when using insserv AFAIK.  If you hadn't
converted to using dependency based boot until 2.88dsf-28, this might
be new though.

I think we should remove it in wheezy+1 though, or even wheezy if it's
not going to cause too much confusion--should people who have been
converted to dependency based boot be reminded of the fact every time
update-rc.d is run?

> 2. To disable an init.d script, is it better to just remove the
> executable flag of `/etc/init.d/name` with the latest changes in
> 2.88dsf-28?

You can do that, certainly.  Or just use "update-rc.d service disable":

% sudo update-rc.d cups disable 
update-rc.d: using dependency based boot sequencing
insserv: warning: current start runlevel(s) (empty) of script `cups' overwrites defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (1 2 3 4 5) of script `cups' overwrites defaults (1).
% ls /etc/rc*.d/*cups          
/etc/rc1.d/K01cups  /etc/rc2.d/K01cups  /etc/rc3.d/K01cups  /etc/rc4.d/K01cups  /etc/rc5.d/K01cups

% sudo update-rc.d cups enable 
update-rc.d: using dependency based boot sequencing
% ls /etc/rc*.d/*cups         
/etc/rc1.d/K01cups  /etc/rc2.d/S04cups  /etc/rc3.d/S04cups  /etc/rc4.d/S04cups  /etc/rc5.d/S04cups

This converts the start links to stop links, and enable reverses this.


Regards,
Roger

-- 
  .''`.  Roger Leigh
 : :' :  Debian GNU/Linux             http://people.debian.org/~rleigh/
 `. `'   Printing on GNU/Linux?       http://gutenprint.sourceforge.net/
   `-    GPG Public Key: 0x25BFB848   Please GPG sign your mail.





More information about the Pkg-sysvinit-devel mailing list