GNU/Linux >> Belajar Linux >  >> Linux

Mengapa Wget Tidak Mati Setelah Koneksi Ssh Hilang?

Saya ssh ed ke server saya dan menjalankan wget -r -np zzz.aaa/bbb/ccc dan itu mulai bekerja. Kemudian koneksi Internet saya (di rumah saya) terputus dan saya khawatir dengan asumsi bahwa wget telah hup ped karena ssh koneksi terputus dan oleh karena itu terminal telah mati. Tapi kemudian saya ssh ed ke server saya dan menyadari bahwa itu masih berjalan dan menempatkan output di wget.log dan mengunduh barang. Bisakah seseorang menjelaskan kepada saya apa yang mungkin terjadi di sini?

Ini yang ps memberi saya:

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

Apa fungsinya (tanda tanya) ? maksud di kolom tty ?

Jawaban yang Diterima:

Program (dan skrip) dapat memilih untuk mengabaikan sebagian besar sinyal, kecuali beberapa seperti KILL . HUP sinyal dapat ditangkap dan diabaikan jika perangkat lunak menginginkannya.

Ini dari src/main.c dari wget sumber (versi 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.  */

Sedikit lebih jauh ke bawah, pengendali sinyal dipasang:

  /* Setup the signal handler to redirect output when hangup is
     received.  */
  if (signal(SIGHUP, SIG_IGN) != SIG_IGN)
    signal(SIGHUP, redirect_output_signal);

Jadi sepertinya wget tidak mengabaikan HUP sinyal, tetapi memilih untuk melanjutkan pemrosesan dengan outputnya diarahkan ke file log.

Diminta dalam komentar:Arti dari ? di TTY kolom keluaran dari ps dalam pertanyaannya adalah bahwa wget proses tidak lagi terkait dengan terminal/TTY. TTY hilang saat koneksi SSH terputus.


Linux
  1. Mengapa Server Memblokir IP Saya?

  2. Mengapa Proses Pgid Anak Bukan Pid Orang Tua?

  3. Koneksi Ssh Ditolak Dari Dalam Lan?

  1. Mengapa Penundaan Lama Setelah Perintah Tidak Ditemukan?

  2. Bagaimana Memulihkan / Membunuh Sesi Ssh Setelah Kehilangan Koneksi?

  3. Mengapa pr_debug dari kernel Linux tidak memberikan hasil apa pun?

  1. Bagaimana cara memeriksa kecepatan koneksi ssh Anda

  2. SSH terus terputus setelah beberapa menit tidak aktif

  3. SSH - Cara memasukkan perintah -t di file ~/.ssh/config