systemctlの--machineパラメータを単位ファイルに変換するには?

systemctlの--machineパラメータを単位ファイルに変換するには?

私はこのユニットファイルを持っていますhdmi_sound_toggle.service

[Unit]
Description=Runs /usr/local/bin/hdmi_sound_toggle.py to switch to the correct sound output
  
[Service]
Type=oneshot
ExecStart=/usr/local/bin/hdmi_sound_toggle.py

次に、次のudevルールがあります。

SUBSYSTEM=="drm", ACTION=="change", RUN+="/usr/local/bin/run_hdmi_sound_toggle"

持っている/usr/local/bin/run_hdmi_sound_toggle

#!/bin/bash
systemctl [email protected] --user --now start hdmi_sound_toggle.service

走り終わった後

sudo systemctl daemon-reload
sudo udevadm control --reload-rules
sudo udevadm trigger --verbose --action=change --subsystem-match=drm

ファイルが/usr/local/bin/hdmi_sound_toggle.py正常に実行されます。スクリプトを呼び出す[email protected] --userため、パラメータが必要です。pactludevはrootとして実行されるため、ユーザープロセスとして実行されているPipewire / PulseAudio(私が正しく実行した場合)は接続を拒否し、スクリプトは失敗します。

しかし、udevを介して直接systemdユニットを実行したいと思います/usr/local/bin/run_hdmi_sound_toggle。これを機能させるにはどうすればよいですか[email protected] --user?文書を見ようとしましたが、わかりません。

ベストアンサー1

したがって、これはサポートされていないため不可能であることがわかりました。https://lists.freedesktop.org/archives/systemd-devel/2022-January/047336.html

おすすめ記事