コマンドグループをsystemd-runに渡す方法は?

コマンドグループをsystemd-runに渡す方法は?

systemd-runなぜこれらのコマンドグループを渡すことができないのですか?

$ systemd-run --on-active=1 { cp file1 file2 && echo hi; }
Failed to find executable {: No such file or directory

私は引用符、中かっこ、サブシェルのさまざまな組み合わせを試しましたが、成功しませんでした。私はこれがシェル - Linuxの違いの問題かもしれないと思います。

調べたhttps://www.freedesktop.org/software/systemd/man/systemd.service.html#Command%20linesしかし、そこでも解決策が見つかりません。

確かにコマンドをスクリプトに入れることができますが、ここで何が欠けているのかを知りたいです。どんなアイデアがありますか?


状況によってはまったく異なる解決策があるかもしれません。

別のコマンドで最初に削除しない限り(新しいネットワーク設定が成功した場合)、以前に作成されたバックアップファイルをコピーして、特定のカウントダウン後にネットワーク設定をリセットするソリューションを作成しようとしています。

systemd-run成功時にのみ再起動が行われる2つのコマンドを実行する一時タイマーを使用してソリューションを試しています。cp

systemd-run --on-active=300 { cp /etc/systemd/network/10-wired.network.backup /etc/systemd/network/10-wired.network && systemctl restart systemd-networkd; }

ベストアンサー1

シェルを起動し、コマンド文字列にコマンドを渡すことができます。

systemd-run --on-active=300 sh -c '
    cp /etc/systemd/network/10-wired.network.backup /etc/systemd/network/10-wired.network &&
        systemctl restart systemd-networkd.service'

おすすめ記事