Как я могу заставить часы GNU работать в фоновом режиме?
Если я начну watch
Команда в фоновом режиме, это останавливается. Если перенести задание на передний план, оно снова запустится, но я хочу, чтобы оно работало в фоновом режиме.
$ watch ./do-something.sh &
[1] 97673
[1]+ Stopped watch ./do-something.sh
Я ожидаю, что эта работа будет выполняться в фоновом режиме, но это не так
$ bg 1
[1]+ watch ./hello.sh &
[1]+ Stopped watch ./hello.sh
Это тоже ничего не делает. Запуск задания на переднем плане и перемещение в фоновом режиме с помощью Ctrl-Z и "запуск" с bg 1
тоже не работает.
Это "особенность" часов? Я просто хочу периодически что-то запускать, каждые несколько секунд, и меня не особо волнует вывод. (Cron не подходит для этого, fwiw).
1 ответ
Я просто хочу периодически что-то запускать, каждые несколько секунд, и меня не особо волнует вывод. (Cron не подходит для этого, fwiw).
И ни один не watch
, Он предназначен для интерактивного мониторинга вывода какой-либо команды - он откажется работать в фоновом режиме, если не может управлять терминалом, как любая другая интерактивная программа.
Попробуйте что-нибудь попроще:
while sleep 2; do ./do-something.sh; done &
Да, и Cron будет правильным инструментом для этого - в конце концов, это его единственная работа. Есть только ограничение невозможности указать задания со второй точностью.