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.