Asi po hodině hledání toho nemůžu uvěřit nikdo se na tuto otázku ještě nezeptal…
Takže mám skript spuštěný na TTY1. Jak udělám, aby tento skript spustil nějaký libovolný program na TTY2?
- Našel jsem
tty
, který vám řekne, na jakém TTY právě používáte. - Našel jsem
writevt
, který zapíše jeden řádek textu na jiný TTY. - Našel jsem
chvt
, který změní aktuálně zobrazený TTY.
Nechci zobrazovat TTY2. Chci jen, aby se hlavní skript normálně spouštěl, ale pokud ručně přepnu na TTY2, mohu pracovat s druhým programem.
Přijatá odpověď:
setsid sh -c 'exec command <> /dev/tty2 >&0 2>&1'
Dokud nic jiného nepoužívá druhý TTY (/dev/tty2
v tomto příkladu) by to mělo fungovat. To zahrnuje getty
proces, který může čekat, až se někdo přihlásí; více než jeden proces čte svůj vstup z TTY will vést k neočekávaným výsledkům.
setsid
se postará o spuštění příkazu v nové relaci.
Všimněte si, že command
se bude muset postarat o nastavení stty
správné nastavení, např. zapněte „vařený režim“ a onlcr
takže výstup nového řádku přidá znak konce řádku atd.