2009-05-28 6 views
3

나는백그라운드에서 lynx -dump를 실행 하시겠습니까?

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

같은 라인을 포함하는 bash는 스크립트 mystuff을 가지고 있고 비 대화식으로 실행할 때 스크립트는를 제외하고이 부분, 을 포함하여, 잘 작동 :

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

작업은 멈췄다. 나는 스라소니가 범인이라는 것을 알았습니다. 심지어 배쉬 프롬프트에서이 명령을 직접 실행은 원인이되는 작업을 즉시 중지 할 수 :

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

이유는 백그라운드에서 실행 LYNX되지 않습니다? 이 문제를 어떻게 해결할 수 있습니까?

편집 : 나는 원시 HTML을 구문 분석하고 싶지 않기 때문에 나는 살쾡이를 사용하고

. wgetlynx -dump의 차이는 lynx가 HTML을 렌더링한다는 것입니다. 모든 태그를 숨기고, 텍스트를 멋지게 정렬 할 것입니다.

답변

2

Lynx는 터미널과 대화하려고하지만 할 수 없으므로 SIGSTP (tty input)를 실행하고 프로세스를 포 그라운드로 기다립니다.

위에서 언급 한 것처럼 : wget을 사용하십시오. wget -O tmpfile http://example.com은 위의 lynx로하는 것과 같은 일을합니다.

+0

tty를 가짜로 만들거나 방향을 바꾸는 방법이 있습니까? 터미널 타입을 강제하기 위해 -term = ansi (예를 들어)를 사용할 수 있다는 것을 알고 있습니다. –

+2

lynx를 사용해야하는 특별한 이유가 있습니까? Lynx가 페이지를 텍스트 모드로 렌더링한다는 사실을 이용하려고합니까? 내 시스템에서'w3m -dump'는 STOP 신호없이 제대로 작동합니다. –

+0

나는 w3m을 몰랐다. 고마워! 내가 확인했는데 그것이 효과가있는 것처럼 보입니다. 설명과 해결 방법을 고맙게 생각합니다. –

1

답을 찾지 못했지만 대신 wget을 사용할 수 있습니까?

+0

+1, 확실히 wget을 사용하십시오. –

0

내 시스템에서 lynx 명령은 그대로 작동합니다. 시도해보고 무슨 일이 일어나는 지 확인하십시오 :

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

우리는 lynx --source http_setting : // whatever | bash를 실행했습니다.

bash로 실행하면 백그라운드 프로세스가 내 개인 자격 증명과 tty 불일치로 실행을 우회 할 수있었습니다.

+0

고마워요,하지만이 대답은 요점을 놓칩니다. 'lynx -source'는'wget'과 동일합니다. 원시 HTML을 제공하고 나서 파싱해야합니다. 필자는 lynx에서 HTML 구문 분석기를 사용하여 사람이 읽을 수있는 단순화 된 텍스트를 얻으려고했습니다. –