当没有任何事情发生时,让xterm通知我

时间:2017-08-05 20:31:42

标签: notifications gnu xterm terminal-emulator

最近我发现自己好几次,我需要在某些后台xterm中运行一些操作,并且在我的输入请求时我需要得到通知。

我知道如何制作它以便在命令结束时通知我,但在命令不是100%批处理的情况下这没有帮助(它放置偶尔提示一个提示;一个常见的例子是apt-get)或命令挂起的地方(例如,由于某些网络故障)。

所以我希望在最后N分钟没有输出时收到通知。有没有办法配置xterm为我这样做,或者可能有其他工具(screen可能)这样做?

2 个答案:

答案 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