监视/监视某个关键字的后台作业
在一个bash脚本中,我想用下面的方式来监视/监视后台进程/作业:
- 在后台运行一个命令(在我的情况下,nodeJS)
- 监视它的输出,但不显示它
- 只要输出包含“错误”一词或作业退出/停止:
- 显示最后一个输出(即完整的错误信息)
- 退出脚本
我怎么做?
你可以用strace
来做:
在最简单的情况下, strace
运行指定的命令,直到它退出。 它拦截并logging进程调用的系统调用和进程接收到的信号。 每个系统调用的名称,参数及其返回值将打印在标准错误或由-o
选项指定的文件上。
如:
strace -o /path/to/file.txt process_to_monitor
然后你可以使用tail
来提取文件的最后部分(默认最后10行)。
tail /path/to/file.txt -n100
如果你想复制最后100行。
然后你grep
从你想要的任何string。