在 bash 脚本中,我想通过以下方式观察/监视后台进程/作业:
- 在后台运行命令(在我的例子中是nodeJS)
- 监视其输出,但不显示它
- 一旦输出包含“Error”一词或作业退出/停止:
- 显示最后的输出(即完整的错误消息)
- 退出脚本
我该怎么做?
最佳答案
您可以使用strace
来做到这一点:
在最简单的情况下,strace
运行指定的命令直到退出。
它拦截并记录由某个程序调用的系统调用
进程以及进程接收到的信号。的名字
每个系统调用、其参数和返回值都打印在
标准错误或使用 -o
选项指定的文件。
如:
strace -o /path/to/file.txt process_to_monitor
然后你可以使用tail
提取文件的最后部分(默认为最后 10 行)。
tail /path/to/file.txt -n100
如果您想复制最后 10000 行。
然后你grep
你想要从中得到的字符串。
关于node.js - 监视/监视某些关键字的后台作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43132319/