Hi, currently we seem to have no clear policy in Debian how to handle the question: "Shall a service started once its installed or not?" The current state of affairs is that some packages start after beeing installed, some don't, because they don't have a reasonable default configuration and some don't, because the maintainer does not like this approach. We also don't seem to have a clear consense how to disable/temporarily deactivate services. The current situation is that some packages include a file in /etc/default with a variable "RUN", "RUN_<PACKAGENAME>", "START_ON_BOOT" or even another possible name which decides weither a service runs when invoke-rc.d <service> start is issued or not. Some other packages do not follow this approach and start or don't start as the maintainer sees fit. There are clear disadvantages with this: - The administrator has no way to influence the decision weither a service shall run directly after installation. - The administrator needs to apply and know about several different ways about how to enable/disable services. I know there are constraints where a local-admin decision "start/don't after installation" cannot be followed. Still, I would like to work on the following idea and implement it somewhere during the squeeze (or +1) release cycle. --- IDEA START --- * We establish the practice, that by default no package does include an enabled RUN_<SERVICE> variable in its /e/d/<packagename> file. Instead every service shall include such a variable, but commented. The default of the init script should be to start, unless RUN_<SERVICE> says different. The name of the variable should be standardized to RUN_<SERVICE>. * We add a new configuration file (possibly /etc/rc.conf because thats a file that exists in different distributions and has a similar meaning) which can have the following configuration settings: * RUN_NEW_SERVICES_AFTER_INSTALL=<yes|no|1|0|true|false> * RUN_<SERVICE>=<yes|no|1|0|true|false> This configuration file must not be modified by maintainer scripts. The rationale for the RUN_<SERVICE> entries is that an admin can have RUN_NEW_SERVICES_ON_INSTALL=false, but decide for a certain service that it shall start after he installed it before. * We let the maintainer scripts respect the RUN_NEW_SERVICES_ON_INSTALL setting on a new installation. * We develope a policy.d layer that respects the RUN_<SERVICE> settings from rc.conf and /e/default/* and permits/denies start of services, based on these settings. Init scripts shall only start if the service is allowed to start (RUN_* setting or RUN_NEW_SERVICES_ON_INSTALL) and if they have a sensible default configuration (which pays due to the before mentioned contraints). This policy.d layer should be of priority Standard. Eventually we should extend the policy.d concept in a way that permits to have more than one policy.d layer at a time, so that a user can still use an (additional) own layer. * A bonus would be to have a utility to enable/disable services. --- IDEA END --- I post this as a proposal/request-for-comments to debian-devel, because I'd like to hear if anybody thinks working on this is valueable and because I'd like to know, who is interested to actually work on this idea (besides myself). I also hope that some of you have some ideas to enhance the idea. Best Regards, Patrick
Attachment:
signature.asc
Description: Digital signature