GNU/Linux >> Belajar Linux >  >> Linux

Dalam file layanan systemd, bagaimana saya mengatakan setelah USB siap?

Saya belum memecahkan ini sebelumnya, tetapi sepertinya ini cocok untuk "aktivasi berbasis jalur".

Alih-alih memiliki klausa "After=" di file layanan Anda, Anda akan membuat .path file, seperti yang dijelaskan dalam man systemd.path .

Temukan file yang cocok di bawah /dev/bus/usb atau /sys/bus/usb , yang kehadirannya menunjukkan bahwa "USB sudah habis". Kemudian miliki systemd pantau jalur file menggunakan .path file yang akan Anda buat. .path file kemudian akan mengaktifkan .service Anda file ketika file tersebut ada.


Yang akan saya lakukan adalah membuat unit perangkat systemd menggunakan aturan udev. Misalnya:buat /etc/udev/rules.d/20-usb-bus.rules dengan:

KERNEL=="usb[1-2]", TAG+="systemd"

Pada boot berikutnya (atau memuat ulang aturan udev), Anda sekarang akan memiliki unit perangkat sistem Anda:

# systemctl status dev-bus-usb-001-001.device
● dev-bus-usb-001-001.device - 2.0 root hub
...
# systemctl status dev-bus-usb-002-001.device
● dev-bus-usb-002-001.device - 3.0 root hub
...

Sekarang Anda dapat memulai layanan setelah bus USB siap dengan menambahkan:

[Unit]
...
After=dev-bus-usb-001-001.device dev-bus-usb-002-001.device

ke layanan systemd Anda.


Linux
  1. Bagaimana Memulihkan Data Xfs Setelah Rm?

  2. Bagaimana Memulihkan Setelah Kate Crashes?

  3. Jalankan Layanan Systemd Setelah Automount Tapi Setelah Diakses?

  1. Linux – Bagaimana Cara Menghubungkan Kembali Perangkat Usb yang Terputus Secara Logis?

  2. Cara mengarahkan output dari layanan systemd ke file

  3. Bagaimana menghentikan layanan systemd

  1. Cara memulai layanan systemd setelah pengguna masuk dan menghentikannya sebelum pengguna keluar

  2. Sistem menolak SSH dan macet saat 'boot up' setelah instalasi systemd

  3. Systemd Unit File - WantedBy dan After