###前提・実現したいこと
centos7にsambaをインストールして、ホットフォルダを作成しています。
フォルダの監視にはinotify-toolsを用いて監視を行っています。
監視処理はシェルにして、systemdでデーモン化しています。
###発生している問題・エラーメッセージ
シェルのプロセスが二つあり、なぜ二つあるのか分からない。 systemctl status watch_file ~(省略)~ Active: active (running) since 水 2017-09-27 05:01:01 JST; 3h 20min ago Main PID: 14890 (watch_file.sh) CGroup: /system.slice/watch_file.service ├─14890 /bin/bash /home/sh/watch_file.sh ├─14892 inotifywait -e CLOSE_WRITE -m /home/share/watch... └─14893 /bin/bash /home/sh/watch_file.sh ~(省略)~ ps aux | grep watch_file usrname 14890 0.0 0.0 115244 1492 ? Ss 05:01 0:00 /bin/bash /home/sh/watch_file.sh usrname 14893 0.0 0.0 115244 396 ? S 05:01 0:00 /bin/bash /home/sh/watch_file.sh
###該当のソースコード
watch_file.sh
shell
1#!/bin/bash 2 3trap "exit 0" 3 # QUITシグナルで停止 4 5w_dir=/home/share/watch 6 7# 監視 8inotifywait -e CLOSE_WRITE -m ${w_dir} --format "%w %f" | \ 9while read LINE; do 10 11 # --format指定した通りに変数に格納 12 declare -a eventData=(${LINE}) 13 dirPath=${eventData[0]} 14 fileName=${eventData[1]} 15 16 # ファイルネームを元にロックファイルを作る 17 ext="xml" 18 efNameOnly=`basename "$fileName" ".$ext"` 19 20 lockfile=/home/tmp/$efNameOnly 21 22 item=$dirPath$fileName 23 24 # ロックファイルがある 25 if [ -f ${lockfile} ]; then 26 continue 27 else 28 # 監視対象のディレクトリにファイルがある 29 if [ -f ${item} ]; then 30 # ロックファイルを作る 31 touch $lockfile 32 # 処理 33 # wget ~(省略)~ 34 # ロックファイルを消す 35 rm -f $lockfile 36 fi 37 fi 38done
watch_file.service
shell
1[Unit] 2Description = watch file daemon 3 4[Service] 5ExecStart = /home/sh/watch_file.sh 6Restart = always 7Type = simple 8 9[Install] 10WantedBy = multi-user.target
###試したこと
ためしにプロセスをkillしてみましたが、エラーを吐いて終了してしまいました。
###補足情報(言語/FW/ツール等のバージョンなど)
CentOS 7
inotify-tools
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。