0

我有一个基本上top -n1每秒将输出打印到文件的脚本

最简单的形式:

while [ 1 ] ; do
   top -n1
   sleep 1
done

如果我像这样运行我的脚本:

./my_script.sh > out.log

它运行良好

如果我在后台运行它:

./my_script.sh > out.log &

然后它给我Stopped(SIGTTOU)错误。从其他 Q/As 我发现 top 正在尝试从标准输入中读取,并且在后台运行时没有标准输入。

如何将 top 作为后台任务记录到文件中?

4

1 回答 1

2

您需要将顶部写入文件,并且在循环中..

#!/bin/bash
while [ 1 ] ; do
   top -b -n 1 > top.txt
   sleep 1
done

或者

#!/bin/bash
while :
do
  top -b -n 1 > top.txt
  sleep 1
done
于 2019-10-03T12:28:57.827 回答