2009-05-28 120 views
3

我有一個包含像在後臺運行lynx -dump?

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

線一個bash腳本mystuff和腳本正常工作,其中包括這一部分,除了當我運行它以非交互方式:

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

工作是停止。我發現l is是罪魁禍首。即使直接從bash提示符運行該命令也會立即停止作業:

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

爲什麼不在後臺運行?我怎樣才能解決這個問題?

編輯:

我用lynx,因爲我不希望有來分析原始的HTML。 wgetlynx -dump之間的區別在於lynx將呈現HTML;它會隱藏所有的標籤,很好地排列文字等。

回答

2

Lynx希望與您的終端通話,但不能,因此它會執行SIGSTP(tty輸入)並等待您前臺處理。

由於mgb上面說過:使用wget。 wget -O tmpfile http://example.com和你上面用lynx做的事情一樣。

+0

有沒有辦法僞造tty,或重定向它?我知道我可以使用-term = ansi(例如)來強制終端類型。 – 2009-05-28 16:11:56

+2

你有使用l?的特殊原因嗎?您是否試圖利用l will將在文本模式下呈現頁面的事實?在我的系統上`w3m -dump`能正常工作而不會產生STOP信號。 – 2009-05-28 16:55:13

1

不是你正在尋找的答案,但你可以用wget來代替嗎?

+0

+1,肯定使用wget。 – 2009-05-28 16:00:01

0

在我的系統上,您的lynx命令按原樣運行。試試這個,看看會發生什麼:

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

我們有幸運行了lynx --source http_setting:// whatever | bash。

作爲bash運行允許後臺進程繞過使用我的個人憑證運行並且沒有tty差異。