ルートではなく特定のユーザーとして実行されるシステムデバイスがあります。このデバイスには1つのシステムデバイスとOnFailureがあります。このOnFailureユニットでは、ExecStartは電子メールを送信するシェルスクリプトを起動します。このシェルスクリプトに失敗した元のシステムデバイスのユーザーを渡したいと思います。どうすればいいですか?
ベストアンサー1
引数を渡すときにセルを起動する一般的な方法は、インスタンスを使用して起動し、セルunit@parameter
内でその値を復元することです%I
。たとえば、--user
テストのためにファイルは次のようになります~/.config/systemd/user/tryfail.service
。
[Unit]
User=otheruser
[email protected]
[Service]
ExecStart=/bin/bash -c 'sleep 3;exit 7'
そして~/.config/systemd/user/[email protected]
[Unit]
Description=%I Instance of Fail Service
[Service]
ExecStart=/bin/bash -c 'echo got %i'
StandardOutput=journal
今すぐ注文
systemctl --user daemon-reload
systemctl --user start tryfail
journalctl -f
失敗したサービスが開始されているというotheruser
情報を表示する必要があります。明らかに、これはUser=
テストに使用すると無視されますが、--user
それは問題ではありません。