3

mystuff次のような行を含むbashスクリプトがあります

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 がバックグラウンドで実行されないのはなぜですか? どうすればこれを修正できますか?

編集:

生の HTML を解析する必要がないため、lynx を使用しています。wgetとの違いlynx -dumpは、lynx が HTML をレンダリングすることです。すべてのタグを非表示にしたり、テキストを適切に配置したりします。

4

4 に答える 4

2

Lynx はあなたの端末と通信したいのですが、できません。したがって、Lynx は SIGSTP (tty 入力) を実行し、プロセスがフォアグラウンドになるのを待ちます。

mgb が上で述べたように、wget を使用します。wget -O tmpfile http://example.com上記の lynx で行っていることと同じことを行います。

于 2009-05-28T16:01:29.257 に答える
1

あなたが探している答えではありませんが、代わりにwgetを使用できますか?

于 2009-05-28T15:58:31.447 に答える
0

私のシステムでは、lynxコマンドはそのまま機能します。これを試して、何が起こるかを確認してください。

lynx -dump -term=xterm http://example.com >tmpfile &
于 2009-05-28T17:30:33.490 に答える
0

運良く lynx --source http_setting://whatever|bash を実行しました。

bash として実行すると、バックグラウンド プロセスが個人の資格情報を使用して実行をバイパスし、tty の不一致がなくなりました。

于 2014-01-09T16:20:01.190 に答える