Mengontrol output tty / terminal dari sesi / shell lain

0

Kita diberitahu bahwa suatu tty dapat mengendalikan paling banyak satu sesi dan lebih jauh bahwa tty dapat dikendalikan untuk tidak membiarkan kelompok proses latar belakang dalam sesi yang dikontrol untuk menulis atau membaca darinya, yang sebelumnya dikendalikan oleh TOSTOP pilihan.

Namun, apa posisi sesi lain menulis untuk tty? Bisakah itu dikendalikan dengan cara tertentu? Menganggap tty1 dan tty2, keduanya dengan kerang. Saya terkejut bahwa perintah berikut aktif shell2 di tty2...

ls > /dev/tty1

... sebenarnya menghasilkan keluaran dari ls di tty1, tidak peduli apa TOSTOP opsi diatur ke dalam tty1. Sejak shell2 sama sekali bagian dari sesi lain, saya pikir itu mungkin, karena TOSTOP Opsi memang melakukan apa yang seharusnya ketika mencoba menulis dari grup proses latar belakang. Bisakah seseorang memberi tahu saya apa yang terjadi?

fast-reflexes
sumber

Jawaban:

1

Itu TOSTOP opsi (dijelaskan misalnya dalam Unix Power Tools , atau Script csh Linux akan ditangguhkan (tty output) saat berjalan dengan & amp; (bg) ) mengacu pada shell Latar Belakang proses. Dalam situasi ini, latar depan dan latar belakang memiliki a dikenal hubungan.

Namun, jika proses Anda telah membuka terminal, itu (hampir selalu) memiliki izin padanya, dan proses lain yang Anda miliki (berjalan di terminal berbeda) tidak memiliki hubungan yang dapat membuka perangkat yang sama dan menulisnya.

Thomas Dickey
sumber
Hubungan yang diketahui adalah bahwa mereka memiliki id sesi yang sama dengan itu? Jadi itu akan mengikuti bahwa pengemudi tty memeriksa ini, dan jika mereka tidak berada di sesi yang sama, itu akan memungkinkan menulis jika izin pengguna mengizinkannya?
fast-reflexes
Itu kesan saya, ya - mungkin diketahui oleh pengemudi tty memiliki yang sama mengendalikan terminal .
Thomas Dickey
Yah, sepertinya benar, saya mencoba menulis ke tty yang dimiliki oleh root dan kemudian tidak mengizinkan saya, terima kasih!
fast-reflexes