[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: How to disable services at startup... and keep them so.

shawn wilson wrote:
> It's generally advised that you use update-rc.d to do this. However, IIRC
> this is the exact same thing that the command does (nothing more) so you
> should be fine.

I see a lot of advice to use update-rc.d to manipulate the symlinks.
That is fine.  But it isn't required.  It is requored for packages to
use update-rc.d by policy.  But it isn't required for people.  You
wouldn't want packages all to do their own thing in the postinst
scripts because then it would then all be done inconsistently and many
would be buggy.  Therefore packages are required to use the
update-rc.d tool as a consistent interface to update symlinks.  That
way they don't introduce random bugs and changes to the scheme can be
implemented all in one place.  But that is packages and not people.

Since the update-rc.d is available for packages to use then there
isn't a reason not to use it interactively on the command line too.
It is there.  It works.  But the syntax was designed for use in
scripts and not designed for use on the command line.  It really isn't
a very user friendly tool.  Using it on the command line always seems
a little bit of a kludge to me.  And it isn't required that you use
that tool when doing it manually.

Feel free to use ln or mv directly on the symlinks.  It is okay.  For
example you could do this without any problem and be no different than
asking a tool to do the action for you.  Run level 2 is the default
run level.  Moving the symlink from Start to Kill will prevent it from
starting the same as if you had used the tool to do it.

  cd /etc/rc2.d
  mv S21network-manager K03network-manager

By policy the update-rc.d tool must respect your local changes.  As
long as it can detect that you have made them.  That is why you can't
remove all of the symlinks because then there isn't any way to know
that it was a change since nothing remains behind.  It would like it
just hadn't been installed at all.  But as long as at least one
symlink remains behind then update-rc.d will be able to detect that it
was an intentional action and will then avoid clobbering the
intentional local modification.

Of course I always use update-rc.d in scripts.  In scripts is how it
was designed to be used.  But on the command line I rarely use it and
more often just manipulate the symlinks by hand.  But as I noted in a
previous posting to disable this I would more often edit the script
and just place an 'exit 0' in it.  Then upon major release upgrade I
would review all of the local configuration changes and decide if I am
going to continue it or sync up.  Seeing an exit 0 and comment
explaining why then I am immediately able to decide upon the correct
action.  But having the symlinks disabled is a lot less easily
communicated to me as to why I had disabled them.

Just my two cents...


Attachment: signature.asc
Description: Digital signature

Reply to: