最近我发现自己好几次,我需要在某些后台xterm中运行一些操作,并且在我的输入请求时我需要得到通知。
我知道如何制作它以便在命令结束时通知我,但在命令不是100%批处理的情况下这没有帮助(它放置偶尔提示一个提示;一个常见的例子是apt-get
)或命令挂起的地方(例如,由于某些网络故障)。
所以我希望在最后N分钟没有输出时收到通知。有没有办法配置xterm
为我这样做,或者可能有其他工具(screen
可能)这样做?
答案 0 :(得分:0)
xterm不会注意到应用程序实际上是在等待输入,还是根本不执行任何操作。可以对应用程序(或外壳)进行修改来做到这一点,但这似乎比您预期的要多得多(例如,许多程序可以可以修改)。>
答案 1 :(得分:0)
我也不知道如何为可能正在等待输入的应用程序执行此操作,但是如果您有一个批处理应用程序,该应用程序必须始终在特定时间段内输出日志信息,那么您可以运行一个额外的过程如果没有在超时时间内被杀死,则执行通知。每当读取新行时,该进程就会终止。也许这将帮助您或其他人使其适应可能等待输入的过程:
i=0;{ while true;do echo $i;((i++));sleep $i;done }|while read line;do if [ $pid ];then sudo kill $pid;fi;bash -c 'sleep 5;notify-send boom'& pid=$!;echo $line;done
管道符号前的部分是一个输出越来越慢的过程,如果它变得比阈值慢,则notify-send
会发送通知。如果您希望在3分钟内完成输出,请使用sleep 3m
。