USBドライブがマウントされている場合にのみ実行されるシステムサービス

USBドライブがマウントされている場合にのみ実行されるシステムサービス

私は非常に退屈なプロセスを自動化するためのエレガントな方法を探していました。

これが私が達成したいワークフローです。

  1. Uディスクの挿入(シングルパーティション)
  2. sdX1は、いくつかのインストールオプションを使用して/ mnt / dataに自動的にインストールされます。
  3. 一部のシステムサービスが起動します(マウントポイントのファイルと対話します)。
  4. ドライブをマウント解除するコマンドを手動で実行しました。
  5. サービスは自動的に終了します。

輸送を試みたので、次のサービスがあります。

[Unit]
Description=Transmission BitTorrent Daemon
After=network.target
After=mnt-data.mount

[Service]
User=transmission
Type=notify
ExecStart=/usr/bin/transmission-daemon -f --log-error
ExecReload=/bin/kill -s HUP $MAINPID
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target
WantedBy=mnt-data.mount

これは私のudevルールファイルです。

SUBSYSTEMS=="usb", ATTRS{idProduct}=="1153", ACTION=="add", ENV{SYSTEMD_WANTS}=="transmission.service"

ドライブをマウントするときにサービスを開始できると思いましたが、動作しません。

ご協力ありがとうございます。

編集:udiskがsystemdと通信していないようなので、これは私が思ったよりも少し難しいようです。サービスを介してドライブをマウント解除するとsystemctl stop mnt-data.mountサービスは停止しますが、別の方法でマウントを解除するとサービスは引き続き実行されます。

ベストアンサー1

おすすめ記事