systemd-run(1)

Från Wiki.linux.se -Linux wikipedia på Svenska.
Hoppa till navigering Hoppa till sök


NAMN

systemd-run – kör program i tillfälliga scope- eller serviceenheter, eller i tjänster som aktiveras av sökväg, socket eller timer

SYNOPSIS

systemd-run [OPTIONER...] KOMMANDO [ARGUMENT...]

systemd-run [OPTIONER...] [SÖKVÄGSOPTIONER...] {KOMMANDO [ARGUMENT...]}

systemd-run [OPTIONER...] [SOCKETOPTIONER...] {KOMMANDO [ARGUMENT...]}

systemd-run [OPTIONER...] [TIMEROPTIONER...] {KOMMANDO [ARGUMENT...]}

BESKRIVNING

systemd-run kan skapa och starta en tillfällig .service- eller .scope-enhet och köra det angivna kommandot i den.

Programmet kan även skapa tillfälliga:

  • .path-enheter
  • .socket-enheter
  • .timer-enheter

som aktiverar en tillhörande .service-enhet.

Tillfällig serviceenhet

När kommandot körs som en tillfällig tjänst:

  • startas och hanteras det av systemd
  • visas det i utdata från:
systemctl list-units
  • körs det i en ren och frikopplad körmiljö
  • är tjänstehanteraren dess föräldraprocess
  • startas det normalt asynkront i bakgrunden

Om --no-block, --wait, --pipe eller --pty används ändras väntbeteendet.

Tillfällig scope-enhet

Med --scope kör systemd-run kommandot som föräldraprocess.

Kommandot ärver då den anropande processens körmiljö, men processerna hanteras fortfarande av systemd och visas bland systemets enheter.

Körningen är synkron och kommandot återvänder först när processen avslutats.

Path-, socket- och timeraktivering

Om exempelvis --on-calendar= används skapas både en timerenhet och en serviceenhet.

Endast timer-, path- eller socket-enheten startas direkt. Tjänsten startas senare när villkoret uppfylls.

Om --unit= anges kan kommandot utelämnas. Då skapas bara den utlösande enheten som startar en redan existerande unit.

Tjänstetyp

Tillfälliga tjänster använder normalt typen:

simple

Med denna typ betraktas starten som lyckad när fork() lyckats, innan execve() körs.

Det innebär att systemd-run kan rapportera lyckad start även om själva kommandot inte kunde startas.

För säkrare kontroll kan följande användas:

--property=Type=exec

Då returnerar systemd-run framgång först när kommandoraden verkligen har startats.

Variabelexpansion

När kommandot överlämnats till tjänstehanteraren utförs variabelexpansion.

Dollartecken som inte ska expanderas måste skrivas dubbelt:

$$

Expansion kan stängas av med:

--expand-environment=no

OPTIONER

--scope

Skapa en tillfällig .scope-enhet i stället för en .service-enhet.

--unit=, -u

Använd angivet unit-namn i stället för ett automatiskt skapat.

--property=, -p

Ange en egenskap för service- eller scope-enheten.
Formatet motsvarar:
systemctl set-property

--description=

Ange en beskrivning för enheten.
Om den saknas används kommandot som beskrivning.

--slice=

Placera enheten i angiven slice.
Standard är system.slice i systemläge och rotslicen i användarläge.

--slice-inherit

Placera enheten under den slice där systemd-run självt körs.

Exempel: om kommandot körs i foo.slice och --slice=bar anges placeras enheten i:

foo-bar.slice

--expand-environment= BOOL

Styr om miljövariabler i kommandoargument expanderas.
Standard är aktiverad.

-r, --remain-after-exit

Behåll tjänsteenheten efter att processen avslutats.
Användbart för att kunna läsa körinformation efteråt.

--send-sighup

Skicka SIGHUP direkt efter SIGTERM när enheten avslutas.

--service-type=

Ange tjänstetyp.
Standard är simple.
Har ingen effekt tillsammans med --scope.

--uid=, --gid=

Kör processen som angiven användare och grupp.

--nice=

Kör processen med angivet nice-värde.

--working-directory=

Ange arbetskatalog.

--same-dir, -d

Använd den anropande processens aktuella arbetskatalog.

--root-directory=

Kör tjänsten med angiven rotkatalog.
Sökvägen tolkas i filsystemets namnrymd där systemd-run körs.

--same-root-dir, -R

Använd samma rotkatalog som den anropande systemd-run-processen.

-E NAMN[=VÄRDE], --setenv= NAMN[=VÄRDE]

Sätt en miljövariabel.
Optionen kan anges flera gånger.
Om värdet utelämnas används motsvarande värde från den anropande miljön.

--pty, -t

Koppla tjänstens standardindata, standardutdata och standardfel till terminalen via en pseudo-TTY.
Lämpligt för interaktiva skal och program.
Medför synkron väntan på att tjänsten avslutas.

--pty-late, -T

Som --pty, men pseudo-TTY:n kopplas in först efter att unit-starten slutförts.
Detta gör att lösenordsagenter kan använda den ursprungliga terminalen under starten.

--pipe, -P

Låt tjänsten ärva standardindata, standardutdata och standardfel direkt.
Lämpligt i shell-pipelines.
Inte lämpligt för interaktiva skal.

Om både --pipe och --pty anges väljs lämpligt läge automatiskt.

--shell, -S

Kortform för:
--pty --same-dir --wait --collect --service-type=exec $SHELL
Startar ett interaktivt skal som tillfällig tjänst i aktuell katalog.

--quiet, -q

Undertryck extra informationsutmatning.

-v, --verbose

Visa enhetens loggutmatning medan den körs.

--output=

Styr formatet för den utförliga loggutmatningen.
Se journalctl(1).

Timeroptioner

--on-active=

Starta kommandot en viss tid efter att timern aktiverats.

--on-boot=

Starta relativt systemets uppstart.

--on-startup=

Starta relativt tjänstehanterarens start.

--on-unit-active=

Starta relativt när enheten senast aktiverades.

--on-unit-inactive=

Starta relativt när enheten senast blev inaktiv.

Dessa motsvarar egenskaper i systemd.timer(5).

De kan inte kombineras med --scope eller --pty.

--on-calendar=

Skapa en kalendertimer.

Exempel:

--on-calendar="2026-07-05 12:00"

--on-clock-change

Utlös kommandot när systemklockan ändras kraftigt.

--on-timezone-change

Utlös kommandot när tidszonen ändras.

--path-property=

Ange egenskap för den tillfälliga path-enheten.

--socket-property=

Ange egenskap för socket-enheten.

--timer-property=

Ange egenskap för timer-enheten.

--no-block

Vänta inte på att unit-starten ska slutföras.
Kan inte kombineras med --wait.

--wait

Vänta tills tjänsten avslutas.
När den avslutas visas kort information om:
  • total körtid
  • CPU-användning
  • minnesanvändning
  • I/O
  • IP-redovisning
  • avslutningskod

om motsvarande redovisning är aktiverad.

-G, --collect

Lasta ur den tillfälliga enheten när den avslutats, även om den misslyckades.
Motsvarar:
--property=CollectMode=inactive-or-failed

--job-mode= LÄGE

Styr hur nya jobb hanteras i förhållande till redan köade jobb.
Visa tillgängliga lägen med:
--job-mode=help

--ignore-failure

Behandla ett misslyckat kommando som lyckat ur systemd-enhetens perspektiv.

--background= FÄRG

Ändra terminalens bakgrundsfärg under körningen.

--user

Använd den anropande användarens tjänstehanterare.

--system

Använd systemets tjänstehanterare.
Detta är standard.

-H, --host=

Kör operationen på en fjärrdator via SSH.

Format:

värd
användare@värd
användare@värd:port/container

IPv6-adresser ska omges av hakparenteser.

-M, --machine=

Kör operationen i en lokal container.
Det går även att ange användare:
användare@container

Specialvärdet:

.host

ansluter till det lokala systemet.

-C, --capsule=

Kör operationen i en capsule.
Se capsule@.service(5).

--no-ask-password

Fråga inte efter autentisering för privilegierade operationer.

-h, --help

Visa kort hjälptext och avsluta.

--version

Visa versionsinformation och avsluta.

--json= LÄGE

Visa utdata som JSON.

Tillgängliga lägen:

  • short
  • pretty
  • off

--no-pager

Skicka inte utdata genom en sidvisare.

Alla argument efter det första argument som inte är en option blir del av kommandoraden för den startade processen.

AVSLUTNINGSSTATUS

0

Tjänsten startades eller avslutades framgångsrikt.

Ett annat värde returneras om tjänsten inte kunde startas.

Om systemd-run väntar på tjänsten vidarebefordras tjänstens avslutningsstatus.

Status som räknas som lyckade kan utökas med SuccessExitStatus= i systemd.service(5).

EXEMPEL

Visa tjänstens miljö

systemd-run env
journalctl -u run-19945.service

Begränsa resurser

Kör updatedb med låg I/O-vikt:

systemd-run -p IOWeight=10 updatedb

Se systemd.resource-control(5).

Kör efter 30 sekunder

systemd-run \
  --on-active=30 \
  --timer-property=AccuracySec=100ms \
  /bin/touch /tmp/foo

Ge åtkomst till terminalen

systemd-run -t --send-sighup bash

Starta screen som användarscope

systemd-run --scope --user screen

Detta gör att processen hanteras under användarens systemd-instans.

För att användartjänster ska överleva utloggning kan lingering aktiveras:

loginctl enable-linger

Variabelexpansion

systemd-run -t echo "<${INVOCATION_ID}>" '<${INVOCATION_ID}>'

Det första argumentet expanderas av skalet.

Det andra kan expanderas av systemd efter att tjänsten skapats.

Stäng av systemd-expansion

systemd-run --expand-environment=no -t bash \
  -c 'echo $SHELL $$ >/dev/stdout'

Hantera lyckade specialstatusar

systemd-run --user --wait true

systemd-run --user --wait \
  -p SuccessExitStatus=11 \
  bash -c 'exit 11'

SE ÄVEN

ANMÄRKNINGAR

ANSI Escape Code:

https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters

KOLOFON

Denna sida är en del av projektet systemd.

Information om projektet finns på:

http://www.freedesktop.org/wiki/Software/systemd

Sidan hämtades från:

https://github.com/systemd/systemd.git

den 24 maj 2026.

Vid den tidpunkten var den senaste hittade commiten daterad den 24 maj 2026.

Renderingsfel och förbättringar kan rapporteras till:

man-pages@man7.org

HÄNVISAD FRÅN

KORT SAMMANFATTNING

systemd-run kör ett kommando som en tillfällig systemd-enhet.

Kör i bakgrunden som tjänst:

systemd-run mittkommando

Kör och vänta:

systemd-run --wait mittkommando

Kör interaktivt:

systemd-run --pty bash

Kör som användartjänst:

systemd-run --user mittkommando

Kör efter fem minuter:

systemd-run --on-active=5m mittkommando

Kör varje dag klockan 03:00:

systemd-run --on-calendar="*-*-* 03:00:00" mittkommando

Begränsa minne:

systemd-run -p MemoryMax=500M mittkommando

Sidslut

Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/systemd-run.1.html Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp Stockholm som har sponsrat Linux.se med webbhotell.