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서비스가 중지되지만, 다른 방법으로 마운트를 해제하면 서비스가 계속 실행됩니다.

관련 정보