Systemd의 기능에는 특정 디렉토리/파일에 대해 생성/변경을 모니터링하고 이벤트가 발생하면 트리거를 발생시키는 기능을 사용할 수 있다.
해당 기능은 [Path]
유닛을 통해서 제어 가능하다.
$ systemctl --user cat 123* *.path # /home/stew/.config/systemd/user/123@.service [Service] Type=oneshot ExecStart=/bin/echo %I # /home/stew/.config/systemd/user/abc.path [Path] PathChanged=/a/b/c Unit=123@-a-b-c.service # /home/stew/.config/systemd/user/foobar.path [Path] PathChanged=/foo/bar Unit=123@-foo-bar.service # /home/stew/.config/systemd/user/xyz.path [Path] PathChanged=/x/y/z Unit=123@-x-y-z.service
비슷한 기능을 하는 툴로는 incrontab
이라는게 있다. incrontab
을 사용하면 파일 혹은 디렉토리의 생성, 이동, 변경, 삭제 등 다양한 상황에 맞추어 정해진 스크립트를 실행하는 작업을 훨씬 편하게 할 수 있다
단점은 레드햇 계열은 기본 패키지에 포함되어있지 않고 데비안 계열에서만 기본으로 포함되어있다.