2009-05-28 83 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差异。