gpt4 book ai didi

linux - 使用 inotify-tools 作为守护进程处理数据

转载 作者:太空狗 更新时间:2023-10-29 11:24:48 24 4
gpt4 key购买 nike

我有一个 bash 脚本,它使用 inotify-tools 处理一些数据,以了解文件系统上何时发生了某些事件。如果在 bash 控制台中运行,它工作正常,但是当我尝试将它作为守护进程运行时,它失败了。我认为原因是 inotifywait 命令调用的所有输出都转到一个文件,因此,| 之后的部分while 不再被调用。我该如何解决?这是我的脚本。

#!/bin/bash

inotifywait -d -r \
-o /dev/null \
-e close_write \
--exclude "^[\.+]|cgi-bin|recycle_bin" \
--format "%w:%&e:%f" \
$1|
while IFS=':' read directory event file
do

#doing my thing

done

所以,-d 告诉 inotifywait 作为守护进程运行,-r 递归执行,-o 是保存输出的文件。在我的例子中,文件是 /dev/null 因为我真的不需要输出,除了处理命令后的部分 (| while...)

最佳答案

在这种情况下,您不想将 inotify-wait 作为守护进程运行,因为您希望继续处理命令的输出。你想用 -m 替换 -d 命令行选项,它告诉 inotifywait 继续监视文件并继续打印到 标准输出:

   -m, --monitor
Instead of exiting after receiving a single event, execute
indefinitely. The default behaviour is to exit after the
first event occurs.

如果你想让事情在后台运行,你需要将整个脚本置于后台。

关于linux - 使用 inotify-tools 作为守护进程处理数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10533200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com