Posting ini dapat membantu. Rekomendasi tersebut adalah:
- background proses (dengan Ctrl-Z, lalu bg )
- jalankan disown -h% [jobid] (kemungkinan bash-isme, jadi Anda harus menerjemahkan untuk tcsh)
The berita buruk , tentu saja, adalah bahwa bg akan perlu dilakukan dalam shell yang sama proses sedang berjalan di ... tapi ... itu mungkin sudah dilatarbelakangi.
Berita yang benar - benar buruk adalah bahwa panggilan penolakan mungkin perlu dilakukan di shell yang sama. Dalam hal ini, ya, Anda kacau. Tapi saya tidak yakin, mungkin root dapat memutuskan hubungan secara paksa.
Hmm. Kemungkinan kabar baik - tcsh melakukan penolakan otomatis:
Jika tcsh keluar secara tidak normal, ia menolak pekerjaan yang berjalan di latar belakang secara otomatis saat keluar.
Jadi, jika proses jangka panjang Anda sudah dilatar belakangi, membunuh orang tua tcsh-nya harus memungkinkan untuk melanjutkan. Proses sekarang terputus dari terminal awal. (Jika tidak, lihat "berita buruk" di atas.)
Sayangnya, ini bukan layar, jadi tidak ada koneksi ulang yang sebenarnya. Anda dapat memalsunya dengan gdb mungkin (sekali lagi, dari tautan pertama):
[...] dengan beberapa peretasan yang kotor, bukan tidak mungkin untuk membuka kembali proses 'stdout / stderr / stdin.
Jadi, Anda masih bisa membuat jendela layar kosong (misalnya yang menjalankan mode tidur).
Dan kemudian gunakan gdb misalnya untuk melampirkan ke proses, lakukan beberapa panggilan tutup (0)
panggilan tutup (1)
panggilan tutup (2)
panggilan terbuka ("/ dev / pts / xx", ...)
panggilan dup (0)
panggilan dup (0)
lepaskan
Output proses akan menuju ke layar. Itu tidak akan dilampirkan ke terminal layar itu, jadi misalnya [sic] akan membunuh perintah "sleep", bukan prosesnya, tetapi itu bisa cukup untuk OP.
Saya ingin tahu apakah seharusnya tidak ada "panggilan dup (1)" dan "panggilan dup (2)" dalam proses itu juga ...