Setelah sekitar satu jam Googling ini, saya tidak bisa percaya tidak ada yang pernah menanyakan pertanyaan ini sebelumnya…
Jadi saya menjalankan skrip di TTY1. Bagaimana cara membuat skrip itu meluncurkan beberapa program arbitrer di TTY2?
- Saya menemukan
tty
, yang memberi tahu Anda TTY mana yang sedang Anda gunakan. - Saya menemukan
writevt
, yang menulis satu baris teks ke TTY yang berbeda. - Saya menemukan
chvt
, yang mengubah TTY yang saat ini ditampilkan.
Saya tidak ingin menampilkan TTY2. Saya hanya ingin skrip utama terus berjalan secara normal, tetapi jika saya beralih ke TTY2 secara manual, saya dapat berinteraksi dengan program kedua.
Jawaban yang Diterima:
setsid sh -c 'exec command <> /dev/tty2 >&0 2>&1'
Selama tidak ada yang menggunakan TTY lain (/dev/tty2
dalam contoh ini), ini seharusnya berhasil. Ini termasuk getty
proses yang mungkin menunggu seseorang untuk login; memiliki lebih dari satu proses membaca inputnya dari TTY akan menyebabkan hasil yang tidak terduga.
setsid
menangani memulai perintah di sesi baru.
Perhatikan bahwa command
harus mengurus pengaturan stty
pengaturan dengan benar, mis. aktifkan "mode matang" dan onlcr
sehingga mengeluarkan baris baru akan menambahkan carriage return, dll.