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

Re: PROPOSAL: init file actions



> status
>      print the current status of the service

It might be good to say what it must include. Also you might want a 
machine testable version so you can do

	if { foo-server running } ; then
		whatever &
	else
		echo "You do not appear to be running the foo-server"
		echo "barengine will not be started"
	fi


> These executable files should not fail obscurely when the configuration
> files remain but the package has been removed, as the default in [the

This is problematic

Ok the flaws in my opinion:

1.	It assumes everything is a service. Some things are run at boot time
	only - for example firmware loaders for cards.

	[Allow such things to not support anything but 'start']

2.	It assumes the script is tied to a binary and the script might
	remain. At least one of my firmware loaders is a dd script...

	[Either remove scripts or retire them to an attic directory]

3.	It doesn't specify an exit code for success/failure/serious error

	[Specify the obvious]

4.	It needs to say what sort of info "status" returns. A compliant script
	is entitled to write witty poems right now.

	[name, state, version, if possible what config file it is using

5.	It needs to address name space collisions

	[Tie the script to the lsb package name ? This also makes it easier
	 for the end user]

6.	Consistant output formats.

	Define an includable file that provides functions

	start_daemon has been mentioned already

	add

	copyright "x"

	Print a copyright banner in the format used by this platform

	doing "xyz"

	Print the first part of a line with a message indicating what is
	being attempted

	did_fail
	did_success
	did_warning

	Print the [ OK ]  [ WARNING ] [ ERROR ] type end of line messages
	or any other format the distribution has chosen.

	log_error app string

	Log an error to the system startup log only if applicable.


This all helps to ensure that the vendors release packages that look and feel
like the OS vendors packages and makes it easier for them as it does so.

So you'd see something like

	copright "VideoMachine (c) Copyright 1999 The Banana Company"

	doing "Starting the VMachine"
	if [ -f /etc/vmachine.boot ] ; then
		if { start_daemon /usr/bin/vmachine } ; then
			did_success
			exit 0
		fi
	else
		log_error $0 "vmachine.boot has been deleted ?"
	fi
	did_fail

and will match on any platform.

Alan


Reply to: