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