systemd-runsystemdDeveloperLennartPoetteringlennart@poettering.netsystemd-run1systemd-runRun programs in transient scope or service unitssystemd-runOPTIONSCOMMANDARGSDescriptionsystemd-run may be used to create and start
a transient .service or a
.scope unit and run the specified
COMMAND in it.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 systemctl
list-units like any other unit. It will run in a clean
and detached execution environment. systemd-run
will start the service asynchronously in the background and
immediately return.If a command is run as transient scope unit, it will be
started directly by systemd-run 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 systemctl
list-units. Execution in this case is synchronous, and
execution will return only when the command finishes.OptionsThe following options are understood:Create a transient .scope unit instead of
the default transient .service unit.
Use this unit name instead of an automatically
generated one.Sets a unit property for the scope or service
unit that is created. This takes an assignment in the same
format as
systemctl1's
set-property command.Provide description for the service or scope
unit. If not specified, the command itself will be used as a
description. See Description= in
systemd.unit5.
Make the new .service or
.scope unit part of the specified slice,
instead of the system.slice.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
RemainAfterExit= in
systemd.service5.
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
SendSIGHUP= in
systemd.kill5.
Sets the service type. Also see
Type= in
systemd.service5. This
option has no effect in conjunction with
. Defaults to
simple.Runs the service process under the UNIX user
and group. Also see User= and
Group= in
systemd.exec5. This
option has no effect in conjunction with
.Runs the service process with the specified
nice level. Also see Nice= in
systemd.exec5. This
option has no effect in conjunction with
.Runs the service process with the specified
environment variables set. Also see
Environment= in
systemd.exec5. This
option has no effect in conjunction with
.All command-line arguments after the first non-option
argument become part of the commandline of the launched
process. If a command is run as service unit, its first argument
needs to be an absolute binary path.Exit statusOn success, 0 is returned, a non-zero failure
code otherwise.ExamplesThe following command will log the environment variables
provided by systemd to services:# 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_64The following command invokes the
updatedb8
tool but lowers the block IO weight for it to 10. See
systemd.resource-control5
for more information on the BlockIOWeight=
property.# systemd-run -p BlockIOWeight=10 updatedbSee Alsosystemd1,
systemctl1,
systemd.unit5,
systemd.service5,
systemd.scope5,
systemd.slice5,
systemd.exec5,
systemd.resource-control5,
machinectl1