1

Если я запускаю команду 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 ответ1

2

Я просто хочу периодически что-то запускать, каждые несколько секунд, и мне не особенно важны результаты. (Cron не подходит для этого, fwiw).

И ни один не watch . Он предназначен для интерактивного мониторинга вывода какой-либо команды - он откажется работать в фоновом режиме, если не может управлять терминалом, как любая другая интерактивная программа.

Попробуйте что-нибудь попроще:

while sleep 2; do ./do-something.sh; done &

Да, и Cron будет правильным инструментом для этого - в конце концов, это его единственная работа. Есть только ограничение невозможности указать задания со второй точностью.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .