Ho un systemd
container in esecuzione e posso accedervi con machinectl login <container>
. Come posso eseguire un comando direttamente all'interno del container, cioè senza prima effettuare il login, eseguire il comando e poi uscire?
Un altro modo per dirlo è che sto cercando il systemd
equivalente di:
$ docker exec <container> <command>
o
$ ssh <host> <command>
Risposta accettata:
Prova systemd-run
:
# systemd-nspawn -D <machine-root> -b 3 --link-journal host
# systemd-run --machine <machine-name> env
Running as unit run-1356.service.
# journalctl --machine <machine-name> -u run-1356 -b -q
Oct 30 07:45:09 jessie-64 systemd[1]: Started /usr/bin/env.
Oct 30 07:45:09 jessie-64 env[37]: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Estratto dalla manpage:
Usa shell (vedi sotto) o systemd-run(1) con l'opzione –machine=per invocare direttamente un singolo comando, in modo interattivo o in background.
(Il comando shell
disponibile dalla v225)