mirror of
https://git.proxmox.com/git/systemd
synced 2025-05-29 10:01:12 +00:00
332 lines
9.9 KiB
Groff
332 lines
9.9 KiB
Groff
'\" t
|
|
.TH "SYSTEMD\-RUN" "1" "" "systemd 219" "systemd-run"
|
|
.\" -----------------------------------------------------------------
|
|
.\" * Define some portability stuff
|
|
.\" -----------------------------------------------------------------
|
|
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
.\" http://bugs.debian.org/507673
|
|
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
|
|
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
.ie \n(.g .ds Aq \(aq
|
|
.el .ds Aq '
|
|
.\" -----------------------------------------------------------------
|
|
.\" * set default formatting
|
|
.\" -----------------------------------------------------------------
|
|
.\" disable hyphenation
|
|
.nh
|
|
.\" disable justification (adjust text to left margin only)
|
|
.ad l
|
|
.\" -----------------------------------------------------------------
|
|
.\" * MAIN CONTENT STARTS HERE *
|
|
.\" -----------------------------------------------------------------
|
|
.SH "NAME"
|
|
systemd-run \- Run programs in transient scope or service or timer units
|
|
.SH "SYNOPSIS"
|
|
.HP \w'\fBsystemd\-run\fR\ 'u
|
|
\fBsystemd\-run\fR [OPTIONS...] \fICOMMAND\fR\ [ARGS...]
|
|
.HP \w'\fBsystemd\-run\fR\ 'u
|
|
\fBsystemd\-run\fR [OPTIONS...] [TIMER\ OPTIONS...] {\fICOMMAND\fR} [ARGS...]
|
|
.SH "DESCRIPTION"
|
|
.PP
|
|
\fBsystemd\-run\fR
|
|
may be used to create and start a transient
|
|
\&.service
|
|
or a transient
|
|
\&.timer
|
|
or a
|
|
\&.scope
|
|
unit and run the specified
|
|
\fICOMMAND\fR
|
|
in it\&.
|
|
.PP
|
|
If a command is run as transient service unit, it will be started and managed by the service manager like any other service, and thus show up in the output of
|
|
\fBsystemctl list\-units\fR
|
|
like any other unit\&. It will run in a clean and detached execution environment\&.
|
|
\fBsystemd\-run\fR
|
|
will start the service asynchronously in the background and immediately return\&.
|
|
.PP
|
|
If a command is run with timer options, transient timer unit also be created with transient service unit\&. But the transient timer unit is only started immediately\&. The transient service unit will be started when the transient timer is elapsed\&. If
|
|
\fB\-\-unit=\fR
|
|
is specified with timer options, the
|
|
\fICOMMAND\fR
|
|
can be omitted\&. In this case,
|
|
\fBsystemd\-run\fR
|
|
assumes service unit is already loaded and creates transient timer unit only\&. To successfully create timer unit, already loaded service unit should be specified with
|
|
\fB\-\-unit=\fR\&. This transient timer unit can activate the existing service unit like any other timer\&.
|
|
.PP
|
|
If a command is run as transient scope unit, it will be started directly by
|
|
\fBsystemd\-run\fR
|
|
and thus inherit the execution environment of the caller\&. It is however managed by the service manager similar to normal services, and will also show up in the output of
|
|
\fBsystemctl list\-units\fR\&. Execution in this case is synchronous, and execution will return only when the command finishes\&.
|
|
.SH "OPTIONS"
|
|
.PP
|
|
The following options are understood:
|
|
.PP
|
|
\fB\-\-scope\fR
|
|
.RS 4
|
|
Create a transient
|
|
\&.scope
|
|
unit instead of the default transient
|
|
\&.service
|
|
unit\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-unit=\fR
|
|
.RS 4
|
|
Use this unit name instead of an automatically generated one\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-property=\fR, \fB\-p\fR
|
|
.RS 4
|
|
Sets a unit property for the scope or service unit that is created\&. This takes an assignment in the same format as
|
|
\fBsystemctl\fR(1)\*(Aqs
|
|
\fBset\-property\fR
|
|
command\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-description=\fR
|
|
.RS 4
|
|
Provide a description for the service or scope unit\&. If not specified, the command itself will be used as a description\&. See
|
|
\fIDescription=\fR
|
|
in
|
|
\fBsystemd.unit\fR(5)\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-slice=\fR
|
|
.RS 4
|
|
Make the new
|
|
\&.service
|
|
or
|
|
\&.scope
|
|
unit part of the specified slice, instead of the
|
|
system\&.slice\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-remain\-after\-exit\fR
|
|
.RS 4
|
|
After the service or scope process has terminated, keep the service around until it is explicitly stopped\&. This is useful to collect runtime information about the service after it finished running\&. Also see
|
|
\fIRemainAfterExit=\fR
|
|
in
|
|
\fBsystemd.service\fR(5)\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-send\-sighup\fR
|
|
.RS 4
|
|
When terminating the scope or service unit, send a SIGHUP immediately after SIGTERM\&. This is useful to indicate to shells and shell\-like processes that the connection has been severed\&. Also see
|
|
\fISendSIGHUP=\fR
|
|
in
|
|
\fBsystemd.kill\fR(5)\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-service\-type=\fR
|
|
.RS 4
|
|
Sets the service type\&. Also see
|
|
\fIType=\fR
|
|
in
|
|
\fBsystemd.service\fR(5)\&. This option has no effect in conjunction with
|
|
\fB\-\-scope\fR\&. Defaults to
|
|
\fBsimple\fR\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-uid=\fR, \fB\-\-gid=\fR
|
|
.RS 4
|
|
Runs the service process under the UNIX user and group\&. Also see
|
|
\fIUser=\fR
|
|
and
|
|
\fIGroup=\fR
|
|
in
|
|
\fBsystemd.exec\fR(5)\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-nice=\fR
|
|
.RS 4
|
|
Runs the service process with the specified nice level\&. Also see
|
|
\fINice=\fR
|
|
in
|
|
\fBsystemd.exec\fR(5)\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-setenv=\fR
|
|
.RS 4
|
|
Runs the service process with the specified environment variables set\&. Also see
|
|
\fIEnvironment=\fR
|
|
in
|
|
\fBsystemd.exec\fR(5)\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-pty\fR, \fB\-t\fR
|
|
.RS 4
|
|
When invoking a command as service connects its standard input and output to the invoking tty via a pseudo TTY device\&. This allows invoking binaries as services that expect interactive user input, such as interactive command shells\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-quiet\fR, \fB\-q\fR
|
|
.RS 4
|
|
Suppresses additional informational output while running\&. This is particularly useful in combination with
|
|
\fB\-\-pty\fR
|
|
when it will suppress the initial message explaining how to terminate the TTY connection\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-on\-active=\fR, \fB\-\-on\-boot=\fR, \fB\-\-on\-startup=\fR, \fB\-\-on\-unit\-active=\fR, \fB\-\-on\-unit\-inactive=\fR
|
|
.RS 4
|
|
Defines monotonic timers relative to different starting points\&. Also see
|
|
\fIOnActiveSec=\fR,
|
|
\fIOnBootSec=\fR,
|
|
\fIOnStartupSec=\fR,
|
|
\fIOnUnitActiveSec=\fR
|
|
and
|
|
\fIOnUnitInactiveSec=\fR
|
|
in
|
|
\fBsystemd.timer\fR(5)\&. This options have no effect in conjunction with
|
|
\fB\-\-scope\fR\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-on\-calendar=\fR
|
|
.RS 4
|
|
Defines realtime (i\&.e\&. wallclock) timers with calendar event expressions\&. Also see
|
|
\fIOnCalendar=\fR
|
|
in
|
|
\fBsystemd.timer\fR(5)\&. This option has no effect in conjunction with
|
|
\fB\-\-scope\fR\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-timer\-property=\fR
|
|
.RS 4
|
|
Sets a timer unit property for the timer unit that is created\&. It is similar with
|
|
\fB\-\-property\fR
|
|
but only for created timer unit\&. This option only has effect in conjunction with
|
|
\fB\-\-on\-active=\fR,
|
|
\fB\-\-on\-boot=\fR,
|
|
\fB\-\-on\-startup=\fR,
|
|
\fB\-\-on\-unit\-active=\fR,
|
|
\fB\-\-on\-unit\-inactive=\fR,
|
|
\fB\-\-on\-calendar=\fR\&. This takes an assignment in the same format as
|
|
\fBsystemctl\fR(1)\*(Aqs
|
|
\fBset\-property\fR
|
|
command\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-user\fR
|
|
.RS 4
|
|
Talk to the service manager of the calling user, rather than the service manager of the system\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-system\fR
|
|
.RS 4
|
|
Talk to the service manager of the system\&. This is the implied default\&.
|
|
.RE
|
|
.PP
|
|
\fB\-H\fR, \fB\-\-host=\fR
|
|
.RS 4
|
|
Execute the operation remotely\&. Specify a hostname, or a username and hostname separated by
|
|
"@", to connect to\&. The hostname may optionally be suffixed by a container name, separated by
|
|
":", which connects directly to a specific container on the specified host\&. This will use SSH to talk to the remote machine manager instance\&. Container names may be enumerated with
|
|
\fBmachinectl \-H \fR\fB\fIHOST\fR\fR\&.
|
|
.RE
|
|
.PP
|
|
\fB\-M\fR, \fB\-\-machine=\fR
|
|
.RS 4
|
|
Execute operation on a local container\&. Specify a container name to connect to\&.
|
|
.RE
|
|
.PP
|
|
\fB\-h\fR, \fB\-\-help\fR
|
|
.RS 4
|
|
Print a short help text and exit\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-version\fR
|
|
.RS 4
|
|
Print a short version string and exit\&.
|
|
.RE
|
|
.PP
|
|
All command line arguments after the first non\-option argument become part of the command line of the launched process\&. If a command is run as service unit, its first argument needs to be an absolute binary path\&.
|
|
.SH "EXIT STATUS"
|
|
.PP
|
|
On success, 0 is returned, a non\-zero failure code otherwise\&.
|
|
.SH "EXAMPLES"
|
|
.PP
|
|
The following command will log the environment variables provided by systemd to services:
|
|
.sp
|
|
.if n \{\
|
|
.RS 4
|
|
.\}
|
|
.nf
|
|
# systemd\-run env
|
|
Running as unit run\-19945\&.service\&.
|
|
# journalctl \-u run\-19945\&.service
|
|
Sep 08 07:37:21 bupkis systemd[1]: Starting /usr/bin/env\&.\&.\&.
|
|
Sep 08 07:37:21 bupkis systemd[1]: Started /usr/bin/env\&.
|
|
Sep 08 07:37:21 bupkis env[19948]: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
|
|
Sep 08 07:37:21 bupkis env[19948]: LANG=en_US\&.UTF\-8
|
|
Sep 08 07:37:21 bupkis env[19948]: BOOT_IMAGE=/vmlinuz\-3\&.11\&.0\-0\&.rc5\&.git6\&.2\&.fc20\&.x86_64
|
|
.fi
|
|
.if n \{\
|
|
.RE
|
|
.\}
|
|
.PP
|
|
The following command invokes the
|
|
\fBupdatedb\fR(8)
|
|
tool, but lowers the block IO weight for it to 10\&. See
|
|
\fBsystemd.resource-control\fR(5)
|
|
for more information on the
|
|
\fIBlockIOWeight=\fR
|
|
property\&.
|
|
.sp
|
|
.if n \{\
|
|
.RS 4
|
|
.\}
|
|
.nf
|
|
# systemd\-run \-p BlockIOWeight=10 updatedb
|
|
.fi
|
|
.if n \{\
|
|
.RE
|
|
.\}
|
|
.PP
|
|
The following command will touch a file after 30 seconds\&.
|
|
.sp
|
|
.if n \{\
|
|
.RS 4
|
|
.\}
|
|
.nf
|
|
# date; systemd\-run \-\-on\-active=30 \-\-timer\-property=AccuracySec=100ms /bin/touch /tmp/foo
|
|
Mon Dec 8 20:44:24 KST 2014
|
|
Running as unit run\-71\&.timer\&.
|
|
Will run as unit run\-71\&.service\&.
|
|
# journalctl \-b \-u run\-73\&.timer
|
|
\-\- Logs begin at Fri 2014\-12\-05 19:09:21 KST, end at Mon 2014\-12\-08 20:44:54 KST\&. \-\-
|
|
Dec 08 20:44:38 container systemd[1]: Starting /bin/touch /tmp/foo\&.
|
|
Dec 08 20:44:38 container systemd[1]: Started /bin/touch /tmp/foo\&.
|
|
# journalctl \-b \-u run\-73\&.service
|
|
\-\- Logs begin at Fri 2014\-12\-05 19:09:21 KST, end at Mon 2014\-12\-08 20:44:54 KST\&. \-\-
|
|
Dec 08 20:44:48 container systemd[1]: Starting /bin/touch /tmp/foo\&.\&.\&.
|
|
Dec 08 20:44:48 container systemd[1]: Started /bin/touch /tmp/foo\&.
|
|
.fi
|
|
.if n \{\
|
|
.RE
|
|
.\}
|
|
.PP
|
|
The following command invokes
|
|
/bin/bash
|
|
as a service passing its standard input, output and error to the calling TTY\&.
|
|
.sp
|
|
.if n \{\
|
|
.RS 4
|
|
.\}
|
|
.nf
|
|
# systemd\-run \-t /bin/bash
|
|
.fi
|
|
.if n \{\
|
|
.RE
|
|
.\}
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
\fBsystemd\fR(1),
|
|
\fBsystemctl\fR(1),
|
|
\fBsystemd.unit\fR(5),
|
|
\fBsystemd.service\fR(5),
|
|
\fBsystemd.scope\fR(5),
|
|
\fBsystemd.slice\fR(5),
|
|
\fBsystemd.exec\fR(5),
|
|
\fBsystemd.resource-control\fR(5),
|
|
\fBsystemd.timer\fR(5),
|
|
\fBmachinectl\fR(1)
|