| .\" Copyright (C) 2000-2001 Richard Gooch |
| .\" |
| .\" This program is free software; you can redistribute it and/or modify |
| .\" it under the terms of the GNU General Public License as published by |
| .\" the Free Software Foundation; either version 2 of the License, or |
| .\" (at your option) any later version. |
| .\" |
| .\" This program is distributed in the hope that it will be useful, |
| .\" but WITHOUT ANY WARRANTY; without even the implied warranty of |
| .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| .\" GNU General Public License for more details. |
| .\" |
| .\" You should have received a copy of the GNU General Public License |
| .\" along with this program; if not, write to the Free Software |
| .\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
| .\" |
| .\" Richard Gooch may be reached by email at rgooch@atnf.csiro.au |
| .\" The postal address is: |
| .\" Richard Gooch, c/o ATNF, P. O. Box 76, Epping, N.S.W., 2121, Australia. |
| .\" |
| .\" initctl.8 Richard Gooch 21-FEB-2001 |
| .\" |
| .TH INITCTL 8 "21 Feb 2001" "Util-Linux Package" |
| .SH NAME |
| initctl \- utility to control simpleinit(8) |
| .SH SYNOPSIS |
| .B need |
| .RB [ \-r ] |
| .I service |
| .br |
| .B display-services |
| .br |
| .B provide |
| .I service |
| .SH OVERVIEW |
| The \fBinitctl\fP programme is designed to help improve the |
| robustness, scalability and readability of system boot scripts. It is |
| now possible to write a modularised set of boot scripts without the |
| complex and fragile numbered symlink scheme used in SysV-style boot |
| scripts. Each script can simply declare, using \fBneed\fP(8), what |
| must run before them. |
| .SH DESCRIPTION for need |
| The \fBneed\fP programme is a utility that tells \fBsimpleinit\fP(8) |
| to start a \fIservice\fP (usually a script in \fI/sbin/init.d\fP) and |
| will wait for the service to become available. If the service is |
| already available, it will not be started again. |
| |
| The \fB-r\fP option is used to tell \fBsimpleinit\fP(8) to "roll back" |
| (stop) services up to (but not including) \fIservice\fP. If |
| \fIservice\fP is not specified, all services are stopped. The \fB-r\fP |
| option thus allows the system to be partially or wholly shut down in |
| an orderly fashion. The \fBshutdown\fP(8) programme still needs to be |
| run. |
| |
| .SH DESCRIPTION for display-services |
| When invoked as \fBdisplay-services\fP it will write the list of |
| currently available services and the list of failed services to the |
| standard output. |
| |
| .SH DESCRIPTION for provide |
| When invoked as \fBprovide\fP it tells \fBsimpleinit\fP(8) that the |
| parent (calling) process will be providing a service with name |
| \fIservice\fP. If the calling process exits successfully (status 0) |
| the service is deemed to be available. Only one instance of |
| \fIservice\fP may be started, so alternate providers will block and |
| may fail. |
| |
| Using \fBprovide\fP it is possible to have multiple potential |
| providers for the same (generic) service (e.g. \fBsendmail\fP and |
| \fBqmail\fP both provide a \fBmta\fP service), where only one actually |
| provides the service. This may be used by service startup scripts |
| which check for configuration files. |
| .SH EXIT CODE |
| The exit code from \fBneed\fP is 0 if the service was successfully |
| started, 1 if the service failed badly, and 2 if the service is |
| unavailable (i.e. disabled in configuration files). These exit codes |
| reflect the exit codes from the service startup scripts. |
| |
| The exit code from \fBneed -r\fP is 0 if the service was successfully |
| stopped, 1 if the service could not be stopped, and 2 if the service |
| was not available to start with. The service shutdown scripts may only |
| return 0 (for success) or 1 (for failure). |
| |
| The exit code from \fBprovide\fP is 0 if the service may be provided, |
| 1 if it may not, and 2 if the parent process is not a child of |
| init. It may block waiting for another provider which is initialising |
| the service. |
| .SH SIGNALS |
| \fBinitctl\fP(8) uses \fBSIGUSR1\fP, \fBSIGUSR2\fP and \fBSIGPOLL\fP |
| for communication with \fBsimpleinit\fP(8). Don't send these signals |
| to it. |
| .SH FILES |
| .PD 0 |
| .TP 20 |
| .BI /dev/initctl |
| This is the control FIFO, created by \fBsimpleinit\fP(8), which |
| \fBinitctl\fP(8) writes commands to. |
| .SH SEE ALSO |
| .BR simpleinit (8), |
| .BR init (8) |
| .PP |
| A more complete discussion of the new boot script system, based on |
| \fBneed\fP(8), is available from: |
| http://www.atnf.csiro.au/~rgooch/linux/boot-scripts/ |
| .SH AUTHOR |
| Richard Gooch (rgooch@atnf.csiro.au) |
| |
| .SH AVAILABILITY |
| The initctl command is part of the util-linux-ng package and is available from |
| ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/. |