这是一个监控一个文件并通知更改的脚本
#!/usr/bin/env bash
update_sha()
{
sha="sha512sum /bin/myfile"
}
update_sha
previous_sha=$sha
compare()
{
update_sha
if [[ $sha != $previous_sha ]] ; then
notify-send "change detected"
build
previous_sha=$sha
fi
}
trap exit SIGQUIT
while true; do
compare
sleep 1
done
我调用了脚本filecheck.sh
。跑nohup ./filecheck.sh &
并且它运行没有任何问题,但它只会运行,直到你关闭系统,所以我认为不好添加到/etc/init.d
我更新它。但是当我试图重新启动时,脚本继续运行并且没有被杀死,我不得不关掉我的系统。任何有关如何在关机时终止脚本的帮助都将不胜感激。
答案 0 :(得分:0)
您实际上并未运行sha512sum
;你需要一个命令替换。编写此脚本的正确方法:
get_sha()
{
sha512sum /bin/myfile
}
previous_sha=$(get_sha)
compare()
{
current_sha=$(get_sha)
if [[ $current_sha != $previous_sha ]] ; then
notify-send "change detected"
build
previous_sha=$currentsha
fi
}
trap exit SIGQUIT
while true; do
compare
sleep 1
done