시스템 자동 마운트가 완료될 때마다 스크립트를 실행하는 방법은 무엇입니까?

시스템 자동 마운트가 완료될 때마다 스크립트를 실행하는 방법은 무엇입니까?

USB 저장 장치가 마운트될 때마다 스크립트가 실행되도록 시스템을 설정하려고 합니다(이 경우 systemd에 의해 자동으로 마운트됩니다). 일부 참고 자료를 바탕으로여기,여기그리고여기, systemd를 사용하면 특정 장치가 설치된 후 사용자 정의 스크립트를 실행할 수 있지만 이러한 스크립트는 다음과 같을 수 있습니다.

  • 특정 장비 또는 장착 지점이 필요합니다.
  • udev를 사용하면 조기에 트리거되고 설치 프로세스가 보존됩니다.
  • 감사나 로깅을 사용하면 그다지 만족스럽지 않습니다.

어쨌든 있나요?더 적은ExecStart특히 성공적인 (자동) 설치 후에 시스템 장치에서 허용됩니까?

답변1

나는 단지 방향만 알려줄 수 있다.

cat /etc/udev/rules.d/bb-clam.rules 
KERNEL=="sd[b-z]*", SUBSYSTEMS=="usb", TAG+="systemd", ENV{SYSTEMD_WANTS}="clamtk.service"

그러면 내 장치의 clamtk.service가 실행됩니다.cat /etc/systemd/system/clamtk.service

[Unit]
Description=clamtk
Requires=dev-media0.device

[Service]
Type=simple
User=alex
ExecStart=/bin/bash -c "/usr/local/bin/clam"
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=15s

[Install]
WantedBy=multiuser.target

그러나 이는 장치가 사용자로 부팅되고 장치가 USB 하드 드라이브에 대해서도 트리거되는 경우에만 작동합니다.

관련 정보