[サービス] 以下のユーザーを systemd の OnFailure ユニットに渡す方法

[サービス] 以下のユーザーを systemd の OnFailure ユニットに渡す方法

ルートではなく特定のユーザーとして実行されるシステムデバイスがあります。このデバイスには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それは問題ではありません。

おすすめ記事