mirror of
https://github.com/troglobit/finit.git
synced 2026-10-01 05:22:48 +07:00
This change opens up the runlevel change API from bootstrap. The twist is that the change is only queued, i.e., the call `initctl runlevel 9` during bootstrap only changes the configured runlevel to go to after bootstrap has completed. Effectively, this change allows overriding the `runlevel` directive in /etc/finit.conf without having to change the file. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
278 lines
6.8 KiB
Plaintext
278 lines
6.8 KiB
Plaintext
.\" Hey, EMACS: -*- nroff -*-
|
|
.\" First parameter, NAME, should be all caps
|
|
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
|
.\" other parameters are allowed: see man(7), man(1)
|
|
.Dd June 6, 2021
|
|
.\" Please adjust this date whenever revising the manpage.
|
|
.Dt INITCTL 8 SMM
|
|
.Os Linux
|
|
.Sh NAME
|
|
.Nm initctl
|
|
.Nd Control tool for Finit
|
|
.Sh SYNOPSIS
|
|
.Nm /sbin/initctl
|
|
.Op Fl bcfhjlpqtvV
|
|
.Op COMMAND
|
|
.Sh DESCRIPTION
|
|
.Nm
|
|
is the official tool for interacting with
|
|
.Xr finit 8 .
|
|
It comes with functions for showing status, querying health of services,
|
|
as well as editing, enabling and disabling services.
|
|
.Sh OPTIONS
|
|
This program follows the usual UNIX command line syntax, with long
|
|
options starting with two dashes (`-'). The options are as follows:
|
|
.Bl -tag -width Ds
|
|
.It Fl b, -batch
|
|
Batch mode, no screen size probing. Useful for scripting.
|
|
.It Fl c, -create
|
|
Create missing paths (and files) as needed. Useful with the
|
|
.Cm edit
|
|
command.
|
|
.It Fl f, -force
|
|
Ignore missing files and arguments, never prompt.
|
|
.It Fl h, -help
|
|
Show built-in help text.
|
|
.It Fl j, -json
|
|
JSON output in
|
|
.Ar status
|
|
and
|
|
.Ar cond
|
|
commands.
|
|
.It Fl n, -noerr
|
|
When scripting
|
|
.Nm
|
|
to stop, start, restart, or signal a task or service, this option can be
|
|
used to ignore error 69 (no such task or service) and instead return 0
|
|
(OK).
|
|
.It Fl 1, -once
|
|
Only one lap in commands like top.
|
|
.It Fl p, -plain
|
|
Use plain table headings, no ANSI control characters.
|
|
.It Fl q, -quiet
|
|
Silent, only return status of command.
|
|
.It Fl t, -no-heading
|
|
Skip table headings.
|
|
.It Fl v, -verbose
|
|
Verbose output, where applicable.
|
|
.It Fl V, -version
|
|
Show program version.
|
|
.El
|
|
.Sh COMMANDS
|
|
.Bl -tag -width Ds
|
|
.It Nm Ar debug
|
|
Toggle
|
|
.Nm finit
|
|
(daemon) debug to
|
|
.Pa /dev/console
|
|
.It Nm Ar help
|
|
Show built-in help text.
|
|
.It Nm Ar version
|
|
Show program version.
|
|
.It Nm Ar ls | list
|
|
List all
|
|
.Cm *.conf
|
|
files in
|
|
.Pa /etc/finit.d
|
|
.It Nm Ar create Ar CONF
|
|
Create
|
|
.Cm .conf
|
|
in
|
|
.Pa /etc/finit.d/available .
|
|
.Pp
|
|
Piping the contents into
|
|
.Nm
|
|
works as one would expect:
|
|
.Bd -literal -offset indent
|
|
echo "task name:foo /tmp/foo.sh -- Foo logger" | initctl create foo
|
|
initctl enable foo
|
|
initctl reload
|
|
.Ed
|
|
.It Nm Ar delete Ar CONF
|
|
Delete
|
|
.Cm .conf
|
|
in
|
|
.Pa /etc/finit.d/available
|
|
.It Nm Ar show Ar CONF
|
|
Show
|
|
.Cm .conf
|
|
in
|
|
.Pa /etc/finit.d/available
|
|
.It Nm Ar edit Ar CONF
|
|
Edit
|
|
.Cm .conf
|
|
in
|
|
.Pa /etc/finit.d/available
|
|
.It Nm Ar touch Ar CONF
|
|
Change (mark as modified)
|
|
.Cm .conf
|
|
in
|
|
.Pa /etc/finit.d/available ,
|
|
like
|
|
.Ar edit
|
|
this tells
|
|
.Nm finit
|
|
that a configuration has been changed and is a candidate to be restarted
|
|
(or SIGHUP'ed) on
|
|
.Cm initctl reload
|
|
.It Nm Ar enable Ar CONF
|
|
Enable
|
|
.Cm .conf
|
|
in
|
|
.Pa /etc/finit.d/available ,
|
|
i.e., add symlink in
|
|
.Pa /etc/finit.d/enabled
|
|
.It Nm Ar disable Ar CONF
|
|
Disable
|
|
.Cm .conf
|
|
in
|
|
.Pa /etc/finit.d/enabled ,
|
|
i.e., removes symlink.
|
|
.It Nm Ar reload
|
|
Reload
|
|
.Cm *.conf in
|
|
.Pa /etc/finit.d ,
|
|
i.e., activates changes.
|
|
.It Nm Ar cond set Ar COND Op COND ...
|
|
Set (assert) user-defined condition,
|
|
.Cm +usr/COND
|
|
.It Nm Ar cond get Ar COND
|
|
Get (quietly) the status of any condition. Defaults to user-defined
|
|
condions, but if a slash is detected, e.g.,
|
|
.Cm pid/foo
|
|
or
|
|
.Cm net/eth0/exist ,
|
|
then any condition can be read.
|
|
.Pp
|
|
The command is geared for scripting, check the exit code to get the
|
|
status of the condition: 0 - on, 1 - off, 255 - flux. For a more
|
|
verbose output, use the
|
|
.Fl v
|
|
option.
|
|
.It Nm Ar cond clr | clear Ar COND Op COND ...
|
|
Clear (deassert) user-defined condition,
|
|
.Cm -usr/COND
|
|
.It Nm Ar cond status
|
|
Show condition status, default
|
|
.Cm cond
|
|
command. Also supports the
|
|
.Fl j
|
|
option for detailed JSON output.
|
|
.It Nm Ar cond dump Op Cm TYPE
|
|
Dump all, or a given type of, conditions and their status. Also
|
|
supports the
|
|
.Fl j
|
|
option for detailed JSON output.
|
|
.It Nm Ar ident Op Cm NAME
|
|
Display indentities of all run/task/services, or only instances
|
|
matching
|
|
.Cm NAME .
|
|
A partial string, e.g.,
|
|
.Cm NAM ,
|
|
will not match anything.
|
|
.It Nm Ar log Op Cm NAME
|
|
Show ten last Finit, or
|
|
.Cm NAME ,
|
|
messages from syslog.
|
|
.It Nm Ar start Cm NAME[:ID]
|
|
Start service by name, with optional ID, e.g.,
|
|
.Cm initctl start tty:1
|
|
.It Nm Ar stop Cm NAME[:ID]
|
|
Stop/Pause a running service by name.
|
|
.It Nm Ar reload Cm NAME[:ID]
|
|
Reload service as if its configuration had changed. Internally,
|
|
.Nm finit
|
|
marks the named service as "dirty" and turns the state machine,
|
|
resulting in a SIGHUP or restart of (at least) the named service.
|
|
Any dependant services are also restarted.
|
|
.Pp
|
|
.Sy Note:
|
|
no .conf file is reloaded with this variant of the command. Essentially
|
|
it is the same as calling
|
|
.Cm restart .
|
|
Except for two things:
|
|
.Bl -enum -offset indent -compact
|
|
.It
|
|
if the service supports HUP, it's signaled instead of stop-started, and
|
|
.It
|
|
it allows restarting run/task in the same runlevel -- which is otherwise
|
|
restricted.
|
|
.El
|
|
.It Nm Ar signal Cm NAME:[ID] S
|
|
Send signal S to service, by name.
|
|
.Cm S
|
|
may be a complete signal name such as SIGHUP, or short name such as HUP, or the signal number such as 1 (SIGHUP).
|
|
.It Nm Ar restart Cm NAME[:ID]
|
|
Restart (stop/start) service by name.
|
|
.It Nm Ar status Cm NAME[:ID]
|
|
Show service status, by name. If only
|
|
.Cm NAME
|
|
is given and multiple instances exits, a summary of all matching
|
|
instances are shown. Only an exact match displays detailed status
|
|
for a given instance.
|
|
.Pp
|
|
With the
|
|
.Fl q
|
|
option this command is silent, provided the
|
|
.Ar NAME[:ID]
|
|
selection matches a single run/task/service. The exit code of
|
|
.Nm
|
|
is non-zero if there is a problem. Zero is returned if a run/task has
|
|
run (at least) once in the current runlevel, and when a service is running
|
|
(as expected). See the
|
|
.Fl j
|
|
option for detailed JSON output suitable for machine parsing.
|
|
.Pp
|
|
.Sy Tip:
|
|
.Xr jq 1
|
|
is a useful scripting tool in combination with JSON output.
|
|
.It Nm Ar status
|
|
Show status of all services, default command. Also supports the
|
|
.Fl j
|
|
option for detailed JSON output.
|
|
.It Nm Ar cgroup
|
|
List cgroup config overview.
|
|
.It Nm Ar ps
|
|
List processes based on cgroups.
|
|
.It Nm Ar top
|
|
Show top-like listing based on cgroups.
|
|
.It Nm Ar plugins
|
|
List installed plugins.
|
|
.It Nm Ar runlevel Op Ar 0-9
|
|
Show or set runlevel: 0 halt, 6 reboot.
|
|
.Pp
|
|
If called at boot (runlevel S) to set the runlevel, Finit only schedules
|
|
the change, effectively overriding the configured runlevel from
|
|
.Pa /etc/finit.conf .
|
|
Useful to trigger a fail-safe mode, or similar.
|
|
.It Nm Ar reboot
|
|
Reboot system, default if
|
|
.Cm reboot
|
|
is symlinked to
|
|
.Nm .
|
|
.It Nm Ar halt
|
|
Halt system, default if
|
|
.Cm halt
|
|
is symlinked to
|
|
.Nm .
|
|
.It Nm Ar poweroff
|
|
Power-off system, default if
|
|
.Cm poweroff
|
|
is symlinked to
|
|
.Nm .
|
|
.It Nm Ar suspend
|
|
Suspend system, default if
|
|
.Cm suspend
|
|
is symlinked to
|
|
.Nm .
|
|
.It Nm Ar utmp show
|
|
Raw dump of UTMP/WTMP db.
|
|
.El
|
|
.Sh SEE ALSO
|
|
.Xr finit.conf 5
|
|
.Xr finit 8
|
|
.Sh AUTHORS
|
|
.Nm finit
|
|
was conceived and reverse engineered by Claudio Matsuoka. Since v1.0,
|
|
maintained by Joachim Wiberg, with contributions by many others.
|