systemd-run COMMAND with output redirection

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
DiscoBoy
Beiträge: 162
Registriert: 19.11.2004 18:17:34

systemd-run COMMAND with output redirection

Beitrag von DiscoBoy » 22.07.2015 20:17:45

Hallo, lerne mich gerade in systemd ein und setze mein System damit gerade neu auf. Um meine geboostrapten Images nachträglich zu konfigurieren verwende ich jetzt systemd-nspawn um in das Image zu booten (als Machine). Von "ausserhalb" kann ich jetzt prima auf den systemd container per systemctl oder systemd-run zugreifen.

Allerdings würde ich per systemd-run gerne komplexere Befehle absetzen was wohl nicht so leicht geht, weil ich den Output der Commands nicht redirecten oder pipen kann.
Ein einfaches Beispiel:

Code: Alles auswählen

systemd-run -M machine --setenv=FOO=BAR echo $FOO > /bar.txt;
Allerdings versteht systemd-run den COMMAND nur bis $FOO und interpretiert > auf ein lokales bar.txt. Irgendwie logisch. Es gibt aber auch keine Möglichkeit den COMMAND zu escapen oder einen Delimter der das Ende der Anweisung markiert, zumindest habe ich nichts gefunden.

Vielen Dank für Tipps!

Benutzeravatar
Six
Beiträge: 8071
Registriert: 21.12.2001 13:39:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Siegburg

Re: systemd-run COMMAND with output redirection

Beitrag von Six » 24.08.2015 09:21:40

systemd-run ist ein Kontrollwerkzeug für systemd-Komponenten in deinem Container und kein Shell-Ersatz ;) Wenn du trotzdem komplexere Befehle absetzen möchtest, dann kannst du ein wenig tricksen. Erstelle auf dem Host ein Skript, das macht, was du möchtest. Das Skript kopierst du mit

Code: Alles auswählen

machinectl copy-to MyContainer <sourcepath/script.bash> <destpath>
in den Container. Dort kannst du das Skript dann mit systemd-run ausführen. Das ist zwar nicht interaktiv aber für Automatisierung reicht es.
Be seeing you!

Antworten