Запуск сценария с верхней командой в фоновом режиме - PullRequest
0 голосов
/ 03 октября 2019

У меня есть скрипт, который в основном печатает этот вывод top -n1 в файл каждую секунду

В его простейшей форме:

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

Если я запускаю свой сценарий как:

./my_script.sh > out.log

все работает нормально

Если я запускаю его в фоновом режиме:

./my_script.sh > out.log &

Тогда это выдаст мне Stopped(SIGTTOU) ошибку. Из других Q / Как я обнаружил, top пытается читать со стандартного ввода, и при запуске в фоновом режиме нет стандартного ввода.

Как я могу добиться регистрации top в файл в качестве фоновой задачи?

1 Ответ

2 голосов
/ 03 октября 2019

Вам нужно записать сверху в файл, и это в цикле ..

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