运行 后台有 top 命令的脚本
Running a script with top command in the background
我有一个脚本,基本上每秒将 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 作为后台任务记录到文件中?
您需要将 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
我有一个脚本,基本上每秒将 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 作为后台任务记录到文件中?
您需要将 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