Fakta bahwa suatu proses "tidak diakui" hanya memiliki makna untuk shell interaktif yang menciptakan proses ini. Ini berarti bahwa shell tidak termasuk (lagi) proses dalam tabel pekerjaannya, dan bahwa SIGHUP tidak akan dikirim ke proses ini ketika shell keluar. Itu tidak benar-benar terkait dengan pertanyaan Anda.
Tentang apa yang terjadi pada output yang dikirim ke terminal virtual yang dihapus: Saya membuat beberapa tes sendiri, dan saya perhatikan bahwa /dev/pts/x
perangkat tidak dapat diakses, dan tidak akan dialokasikan lagi sampai semua pengarsiptor yang menunjuk ke mereka telah ditutup. Jadi, saya tidak dapat melihat alasan mengapa penulisan ke terminal yang dihapus akan disimpan. Saya kira ini bahkan tidak didefinisikan oleh POSIX.
Tentang mengambil output dari beberapa proses yang menulis ke terminal, saya rasa itu tidak mungkin, bahkan ketika terminal masih hidup¹. Yang dapat Anda lakukan adalah meraih input langsung ke terminal (yaitu penekanan tombol, atau penekanan tombol simulasi oleh bagian master dari pty). Jika proses akan membaca pada stdin apa yang ditulis ke terminal mereka, itu akan mengarah ke loop io diri untuk sebagian besar proses.
Tentang komentar terakhir tentang penghentian proses, saya tidak benar-benar tahu apa yang terjadi, tetapi saya akan curiga perilaku yang agak aneh dengan sinyal (SIGTTOU, SIGTTIN, SIGHUP, atau yang lain) terkait dengan keadaan latar depan / latar belakang kelompok proses, ketika sesi pemimpin keluar (misalnya su
, dalam kasus yang Anda sebutkan).
Jawaban untuk Edit: Tidak, sehubungan dengan output, tidak ada yang berubah ketika suatu proses tidak diakui: ia masih melekat pada terminal pengontrolnya (kecuali jika sudah terlepas seperti yang dilakukan daemon). Anda dapat melihat itu menggunakan ps
. Namun, Anda tidak akan dapat menggunakan fg
/ bg
/ jobs
perintah yang disediakan oleh shell lagi untuk proses ini. Itu berarti mungkin sulit untuk mengisinya dengan input dari terminal (harus berada dalam kelompok proses latar depan).
-
1. kecuali jika prosesnya mau, atau dibajak dengan beberapa alat debugging (lihat komentar di atas).