linux - 在后台使用 top 命令运行脚本

标签 linux bash top-command

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

最简单的形式:

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

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

./my_script.sh > out.log

运行良好

如果我在后台运行它:

./my_script.sh > out.log &

然后它给我 Stopped(SIGTTOU) 错误。从其他问答中,我发现 top 正在尝试从标准输入读取数据,而在后台运行时没有标准输入。

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

最佳答案

您需要将 top 写入文件,然后循环写入..

#!/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

关于linux - 在后台使用 top 命令运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58219068/

相关文章:

linux - bash/linux - touch/mkdir 来自文件中的字符串

bash - 从第一个用户输入定义的选项中接受第二个用户输入的最佳方式是什么?

linux - 将 top 输出到文本文件,但按内存排名

linux - 半专用服务器 (Linux) 上的 SVN 设置

python - 打开文件(例如双击文件)的代码

linux - 我如何在awk中显示单引号

Linux `top` 命令 : how much process memory is physically stored in swap space?

linux - 无法在 Perl 中设置 TCP_NODELAY - 关于权限的错误 - 为什么? (但我可以在 python 和 ruby​​ 中设置)

linux - 从 bash 脚本发布 SOAP 信封

php - 在*nix中,什么原因导致top命令中出现 "sleeping"?