Запустить lynx - дамп в фоновом режиме?
-
06-09-2019 - |
Вопрос
У меня есть скрипт 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.