私はssh サーバーにアクセスしてwget -r -np zzz.aaa/bbb/cccを実行しました そしてそれは働き始めました。その後、(自宅での)インターネット接続が中断され、wgetだと思って心配しました。 hupされています sshのためにped 接続が失われたため、端末が停止しました。しかし、私はssh サーバーがまだ実行中であり、出力をwget.logに入れていることに気づきました。 ものをダウンロードします。ここで何が起こったのか誰かに説明してもらえますか?
これがpsです 私に与える:
PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
32283 0.6 29.4 179824 147088 ? S 14:00 1:53 wget -r -np zzz.aaa/bbb/ccc
何をしますか(疑問符)? ttyの列の意味 ?
承認された回答:
プログラム(およびスクリプト)は、KILLのようないくつかを除いて、ほとんどのシグナルを無視することを選択できます。 。 HUP ソフトウェアが望む場合は、信号をキャッチして無視することができます。
これはsrc/main.cからのものです wgetの ソース(バージョン1.19.2):
/* Hangup signal handler. When wget receives SIGHUP or SIGUSR1, it
will proceed operation as usual, trying to write into a log file.
If that is impossible, the output will be turned off. */
シグナルハンドラーの少し下にインストールされています:
/* Setup the signal handler to redirect output when hangup is
received. */
if (signal(SIGHUP, SIG_IGN) != SIG_IGN)
signal(SIGHUP, redirect_output_signal);
つまり、wgetのように見えます 無視ではありません HUP シグナルですが、出力をログファイルにリダイレクトして処理を続行することを選択します。
コメントでリクエスト:?の意味 TTYで psからの出力の列 問題は、wget プロセスはもはや端末/TTYに関連付けられていません。 SSH接続がダウンすると、TTYはなくなりました。