Startpagina > Pakket- en systeembeheer > systemd-run

systemd-run: Voer programma's uit als tijdelijke systemd-eenheden

Het commando systemd-run voert een opgegeven programma uit als een tijdelijke scope- of service-eenheid. Hierdoor kunnen de resourcebeheer, uitvoeringsomgeving en logging van het programma onder de controle van systemd vallen, waardoor het onafhankelijk van de bestaande shell-omgeving kan worden uitgevoerd. Dit is vooral handig voor achtergrondtaken, taken die resourcebeperkingen vereisen, of taken die specifieke systemd-functies nodig hebben.

Overzicht

systemd-run voert commando's uit onder controle van systemd, waardoor de commando's als onafhankelijke systemd-eenheden functioneren. Dit maakt het mogelijk om de krachtige functies van systemd te benutten, zoals procesgroepbeheer, resourcebeperkingen en logboekintegratie.

Belangrijkste kenmerken

  • Aanmaken van tijdelijke scope- of service-eenheden
  • Instellen van resourcebeperkingen en prioriteiten voor programma's
  • Achtergronduitvoering na beëindiging van de shell-sessie (service-eenheid)
  • Geïntegreerde logging via het systemd-journaal
  • Uitvoeren van commando's binnen containers en virtuele machines

Belangrijkste opties

systemd-run biedt diverse opties om de omgeving van het uit te voeren programma en de eigenschappen van de systemd-eenheid te regelen.

Eenheidstype en naam

Uitvoeringscontrole en omgeving

Gegenereerde opdracht:

Probeer de opdrachtcombinaties.

Uitleg:

`systemd-run` Voer het commando uit.

Combineer deze opties en voer de opdracht virtueel uit met de AI.

Gebruiksvoorbeelden

Diverse gebruiksvoorbeelden van het systemd-run commando.

Commando uitvoeren als standaard scope-eenheid

systemd-run --scope echo "Hello from systemd-run"

Voert een eenvoudig commando uit als een tijdelijke scope-eenheid. Dit commando wordt uitgevoerd totdat systemd-run wordt beëindigd.

Commando uitvoeren als achtergrondservice-eenheid

systemd-run --service --unit=my-long-task.service sleep 300

Creëert een achtergrondservice die blijft draaien, zelfs nadat de shell-sessie is beëindigd. De servicenaam wordt gespecificeerd met `--unit`.

CPU-prioriteit en geheugenlimiet instellen

systemd-run --nice=10 --property=MemoryLimit=500M stress --cpu 4

Stelt de CPU-prioriteit van het uit te voeren programma lager in (nice=10) en beperkt het geheugengebruik tot 500MB.

Commando uitvoeren vanuit een specifieke werkdirectory

systemd-run --working-directory=/tmp bash -c 'pwd; touch testfile.txt'

Stelt in dat het commando wordt uitgevoerd vanuit de `/tmp` directory.

Pijplijncommando uitvoeren via shell

systemd-run --shell echo "Hello" | cat

Gebruik de `--shell` optie als u shell-functies zoals pijplijnen (|) of omleidingen (>) wilt gebruiken.

Commando uitvoeren als gebruikers-eenheid

systemd-run --user --scope echo "User-specific task"

Voert de eenheid uit in de systemd-instantie van de huidige gebruiker. Dit heeft geen invloed op het hele systeem.

Tips & Aandachtspunten

Handige tips en aandachtspunten bij het gebruik van systemd-run.

Scope vs. Service-eenheden

Scope-eenheden (`--scope`) zijn alleen geldig tijdens de uitvoering van het `systemd-run` commando en zijn afhankelijk van het moederproces. Service-eenheden (`--service`) draaien onafhankelijk op de achtergrond, zelfs nadat het `systemd-run` commando is beëindigd. Voor achtergrondtaken is het gebruikelijk om `--service` te gebruiken.

  • `--scope`: Afhankelijk van het moederproces, beëindigd bij beëindiging van `systemd-run`
  • `--service`: Onafhankelijke achtergronduitvoering, blijft bestaan na beëindiging van `systemd-run`

Status van eenheden controleren en beheren

De status van door systemd-run gecreëerde eenheden kan worden gecontroleerd met het `systemctl` commando. Service-eenheden kunnen worden gestopt met `systemctl stop`, enz.

  • Status controleren: `systemctl status <unit_name>`
  • Service stoppen: `systemctl stop <unit_name>`
  • Logs controleren: `journalctl -u <unit_name>`

Gebruik van resourcebeperkingen

Met de `--property` optie kunt u diverse resources zoals CPU, geheugen en I/O beperken. Dit is zeer effectief voor het verhogen van de systeembetrouwbaarheid en het voorkomen dat specifieke processen buitensporig veel resources verbruiken.

`--shell` bij gebruik van shell-functies

Als het commando speciale shell-functies bevat zoals pijplijnen (`|`), omleidingen (`>`), of achtergronduitvoering (`&`), moet u absoluut de `--shell` optie gebruiken om ervoor te zorgen dat het commando via de shell wordt geïnterpreteerd. Anders wordt het commando mogelijk niet correct uitgevoerd.



Hétzelfde categoriecommando