簡體   English   中英

inotifywait shell腳本作為守護程序運行

[英]inotifywait shell script run as daemon

我有一個腳本(可遞歸)監視目錄,並在文件更改時執行命令。 如下使用監視標志時,這可以正常工作:

#!/bin/sh

inotifywait -m -r /path/to/directory |
    while read path action file; do
            if [ <perform a check> ]
            then
                my_command
            fi
    done

但是,我想在啟動時和在后台運行它,因此天真地以為我可以將-m標志更改為-d(將inotifywait作為守護程序運行,並包括--outfile位置),然后將其添加到rc.local中。在啟動時運行它。 我要去哪里錯了?

Incron是用於inotify事件的類cron守護程序。

只需使用incrontab和一個條目即可完成您的任務:

/path/to/directory IN_ALL_EVENTS /usr/local/bin/my-script $@ $# $%

/ local / bin / my-script將是:

#! /bin/bash
local path=$1
local action=$2
local file=$3
if [ <perform a check> ]
then
  my_command 
fi

好吧.. -d帶有它本身的背景並且輸出到外文件,因此整個管道和循環結構沒有意義,並且它永遠不會看到任何數據。

您需要在/etc/rc.local的命令末尾添加單個&

在命令末尾加上一個&表示在后台運行該程序,以便用戶仍然可以輸入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM