x13*_*x13 2 bash shell concurrency function
有谁知道如何在bash脚本中锁定函数?我想做一些类似Java的事情(例如同步),以确保保存在受监控文件夹中的每个文件都试图使用Submit功能。
我的脚本摘录:
(...)
ON_EVENT () {
local date = $1
local time = $2
local file = $3
sleep 5
echo "$date $time New file created: $file"
submit $file
}
submit () {
local file = $1
python avsubmit.py -f $file -v
python dbmgr.py -a $file
}
if [ ! -e "$FIFO" ]; then
mkfifo "$FIFO"
fi
inotifywait -m -e "$EVENTS" --timefmt '%Y-%m-%d %H:%M:%S' --format '%T %f' "$DIR" > "$FIFO" &
INOTIFY_PID=$!
trap "on_exit" 2 3 15
while read date time file
do
on_event $date $time $file &
done < "$FIFO"
on_exit
Run Code Online (Sandbox Code Playgroud)
保存新文件时,我正在使用inotify监视文件夹。对于每个保存(接收)的文件,请提交到VirusTotal服务(avsubmit.py)和TreathExpert(dbmgr.py)。并发访问将是避免阻塞监视文件夹中创建的每个新文件的理想选择,但是锁定提交功能应该足够了。
感谢大伙们!
这样的事情应该起作用:
if (set -o noclobber; echo "$$" > "$lockfile") 2> /dev/null; then
trap 'rm -f "$lockfile"; exit $?' INT TERM EXIT
# Your code here
rm -f "$lockfile"
trap - INT TERM EXIT
else
echo "Failed to acquire $lockfile. Held by $(cat $lockfile)"
then
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3562 次 |
| 最近记录: |