<?xml version='1.0'?> <!--*-nxml-*--> <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> <!-- This file is part of systemd. Copyright 2013 Zbigniew Jędrzejewski-Szmek systemd is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. systemd 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with systemd; If not, see <http://www.gnu.org/licenses/>. --> <refentry id="systemd-run"> <refentryinfo> <title>systemd-run</title> <productname>systemd</productname> <authorgroup> <author> <contrib>Developer</contrib> <firstname>Lennart</firstname> <surname>Poettering</surname> <email>lennart@poettering.net</email> </author> </authorgroup> </refentryinfo> <refmeta> <refentrytitle>systemd-run</refentrytitle> <manvolnum>1</manvolnum> </refmeta> <refnamediv> <refname>systemd-run</refname> <refpurpose>Run programs in transient scope or service units</refpurpose> </refnamediv> <refsynopsisdiv> <cmdsynopsis> <command>systemd-run</command> <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="plain"><replaceable>COMMAND</replaceable> <arg choice="opt" rep="repeat">ARGS</arg> </arg> </cmdsynopsis> </refsynopsisdiv> <refsect1> <title>Description</title> <para><command>systemd-run</command> may be used create and start a transient <filename>.service</filename> or a <filename>.scope</filename> unit and run the specified <replaceable>COMMAND</replaceable> in it.</para> <para>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 <command>systemctl list-units</command> like any other unit. It will run in a clean and detached execution environment. <command>systemd-run</command> will start the service asynchronously in the background and immediately return.</para> <para>If a command is run as transient scope unit, it will be started directly by <command>systemd-run</command> 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 <command>systemctl list-units</command>. Execution in this case is synchronous, and execution will return only when the command finishes.</para> </refsect1> <refsect1> <title>Options</title> <para>The following options are understood:</para> <variablelist> <varlistentry> <term><option>-h</option></term> <term><option>--help</option></term> <listitem><para>Prints a short help text and exits.</para></listitem> </varlistentry> <varlistentry> <term><option>--version</option></term> <listitem><para>Prints a short version string and exits.</para></listitem> </varlistentry> <varlistentry> <term><option>--user</option></term> <listitem> <para>Talk to the service manager of the calling user, rather than the service manager of the system.</para> </listitem> </varlistentry> <varlistentry> <term><option>--scope</option></term> <listitem> <para>Create a transient <filename>.scope</filename> unit instead of the default transient <filename>.service</filename> unit. </para> </listitem> </varlistentry> <varlistentry> <term><option>--unit=</option></term> <listitem><para>Use this unit name instead of an automatically generated one.</para></listitem> </varlistentry> <varlistentry> <term><option>--description=</option></term> <listitem><para>Provide description for the unit. If not specified, the command itself will be used as a description. See <varname>Description=</varname> in <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>. </para></listitem> </varlistentry> <varlistentry> <term><option>--slice=</option></term> <listitem><para>Make the new <filename>.service</filename> or <filename>.scope</filename> unit part of the specified slice, instead of the <filename>system.slice</filename>.</para> </listitem> </varlistentry> <varlistentry> <term><option>--remain-after-exit</option></term> <listitem><para>After the service's process 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 <varname>RemainAfterExit=</varname> in <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>. </para> </listitem> </varlistentry> </variablelist> <para>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.</para> </refsect1> <refsect1> <title>Exit status</title> <para>On success, 0 is returned, a non-zero failure code otherwise.</para> </refsect1> <refsect1> <title>See Also</title> <para> <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.scope</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.slice</refentrytitle><manvolnum>5</manvolnum></citerefentry>. </para> </refsect1> </refentry>