web-dev-qa-db-ja.com

サービスを開始する前に/ dev / video0を待つ方法

マウントに依存するユニットファイルを記述できます。それは、それらをリストしてRequires=xxxに追加できるためです。

# systemctl list-units | grep data
mount-data.service    loaded active exited    Manage the data partition

私がしようとしていることは、ウェブカメラがデバイスに接続されたときにサービスを開始することです。 systemctl list-units | grep video0は何も返しません。誰かが簡単な言葉で私を説明できますか?それを確実にするために私は何をしますか?私がしたいことは、/dev/video0/dev/video1などが表示されたときにサービスを開始することです。

この投稿 から、udevルールを記述する必要があるという手がかりを得ましたが、ここで正確に何を行う必要があるのか​​わかりません。助けて?

9
galets

私はこれを理解しました。最初に、次の行をudevルールフォルダ内のファイルの1つに追加します。私は/lib/udev/rules.d/99-systemd.rulesを使用しました

KERNEL=="video0", SYMLINK="video0", TAG+="systemd"
KERNEL=="video1", SYMLINK="video1", TAG+="systemd"

次に、サービスユニットファイルでビデオデバイスにバインドできます。

[Unit]
BindsTo=dev-video0.device
After=dev-video0.device
10
galets