Ticket #88 (closed enhancement: fixed)

Opened 2 years ago

Last modified 16 months ago

Runlevel Stacking/Inheritance

Reported by: Dustin Howett <alaricx@gmail.com> Owned by: roy
Priority: trivial Milestone:
Component: rc Version:
Keywords: Cc:

Description (last modified by roy) (diff)

I propose an enhancement to the current system where runlevels can inherit from eachother.
Default already inherits from Boot; Why can't this be extended and shaped into a generic interface?
For example, boot, basic, default, lowpower, barebones(nonetwork).
default and lowpower would have either a metadata file pointing to basic (this would allow for multiple inheritance), or a symlink to basic, named like _PARENT_ or something (single inheritance).
boot has normal boot-up runlevel stuff, where basic would have things common to both the lowpower and default runlevels, such as an initscript to load binfmt_misc entries, or smartmontools' initscript for hard drive monitoring, or the network interfaces common to lowpower and default.
Nonetwork could, of course, not include any network scripts.

An alternative idea to this would be runlevel sets.. such as a "network" set that contains whatever networking interfaces the system administrator wants, an X set for everything X-related (dbus, xdm, etc.); this could be implemented via simple symlinking. like, default could contain, next to other init.d symlinks, a symlink to /etc/runlevel/.sets/xorg, which would automatically include all the services from that set.

Change History

comment:389 Changed 2 years ago by roy

Sounds like a good idea.
We should try and improve the rc-update tool to cater for this also.
I don't suppose you can supply patches for this? As I won't have time to handle this for a while.

comment:390 Changed 2 years ago by Dustin Howett <alaricx@gmail.com>

I'll see what I can do, I'd love to help! I'll try to fit it in between my GSoC coding :)

comment:391 Changed 16 months ago by roy

  • Status changed from new to closed
  • Resolution set to fixed
  • Description modified (diff)

Fixed in changeset 6615eb4b689d7aa1d047bd9ed75eca80beac9767
See rc-update(8) and rc(8) for how to do runlevel stacking.

Note: See TracTickets for help on using tickets.