Вопрос

У меня есть скрипт bash mystuff содержащий строку, подобную

lynx -dump http://example.com >tmpfile

и сценарий работает нормально, включая эту часть, за исключением когда я запускаю его неинтерактивно:

$ ./mystuff &
[1] 3712
$ jobs
[1]+ Stopped

Задание остановлено.Я нахожу, что линкс - виновник.Даже выполнение этой команды непосредственно из командной строки bash приводит к немедленной остановке задания:

$ lynx -dump http://example.com >tmpfile &
[1] 1836
$ jobs
[1]+ Stopped

Почему lynx не работает в фоновом режиме?Как я могу это исправить?

Редактировать:

Я использую lynx, потому что не хочу разбирать необработанный HTML.Разница между wget и lynx -dump заключается в том, что lynx будет отображать HTML;это скроет все теги, красиво упорядочит текст и т.д.

Это было полезно?

Решение

Lynx хочет поговорить с вашим терминалом, но не может, поэтому он выполняет SIGSTP (ввод tty) и ждет, пока вы запустите процесс на переднем плане.

Как сказал МГБ выше:используйте wget. wget -O tmpfile http://example.com делает то же самое, что вы делаете с lynx выше.

Другие советы

Не тот ответ, который вы ищете, но не могли бы вы просто использовать wget вместо этого?

В моей системе ваша команда lynx работает как есть.Попробуйте это и посмотрите, что получится:

lynx -dump -term=xterm http://example.com >tmpfile &

Нам повезло запустить lynx --источник http_setting://whatever|bash.

Запуск от имени bash позволил фоновому процессу обойти запуск с моими личными учетными данными и без расхождений в tty.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top