![每 m 分钟以 sudo 身份运行和停止监控命令 s 秒](https://linux22.com/image/73558/%E6%AF%8F%20m%20%E5%88%86%E9%92%9F%E4%BB%A5%20sudo%20%E8%BA%AB%E4%BB%BD%E8%BF%90%E8%A1%8C%E5%92%8C%E5%81%9C%E6%AD%A2%E7%9B%91%E6%8E%A7%E5%91%BD%E4%BB%A4%20s%20%E7%A7%92.png)
我想sudo airodump-ng -w myfile
每十分钟左右跑一次,持续 m 分钟。运行时间是否变化并不重要(如果每次运行晚 m 分钟)。
请注意,这是一个监控程序,它不会只是输出和退出。我认为这一问题的解决方案对于类似的监控程序也有效。
我正在考虑添加类似的内容:
*/10 * * * * airodump-ng mon0 -w myfile
进入crontab
。无需更改myfile名称,airodump可以正确检查myfile是否存在并创建myfile-02等。
但是,我应该如何在 s 秒后停止它的运行?pkill airodump
这是我唯一能想到的。每小时跑两次、每次 1 分钟是最好的吗?
20,40 * * * * airodump-ng mon0 -w myfile
21,41 * * * * pkill airodump-ng
答案1
不要使用pkill
.相反,请在timeout
coreutils 包的命令下运行您的应用程序:
*/10 * * * * timeout 5m airodump-ng mon0 -w myfile
(这里的5m
意思是运行 5 分钟。)--signal
如果您需要除 之外的其他内容,请使用TERM
.
答案2
NEXT_WAIT_TIME=0
until command || [ $NEXT_WAIT_TIME -eq 4 ]; do
sleep $(( NEXT_WAIT_TIME++ ))
done
或作为一件内衬
NEXT_WAIT_TIME=0; until command || [ $NEXT_WAIT_TIME -q 4 ]; do sleep $(( NEXT_WAIT_TIME++ )); done