これをグーグルで約1時間過ごした後、私は信じられない これまで誰も実際にこの質問をしたことはありません…
つまり、TTY1で実行されているスクリプトがあります。そのスクリプトでTTY2で任意のプログラムを起動するにはどうすればよいですか?
-
ttyを見つけました 、現在使用しているTTYを示します。 -
writevtを見つけました 、1行のテキストを別のTTYに書き込みます。 -
chvtを見つけました 、現在表示されているTTYを変更します。
表示したくない TTY2。メインスクリプトを正常に実行し続けたいのですが、手動でTTY2に切り替えると、2番目のプログラムを操作できます。
承認された回答:
setsid sh -c 'exec command <> /dev/tty2 >&0 2>&1'
他のTTY(/dev/tty2)を使用しているものが他にない限り この例では)、これは機能するはずです。これにはgettyが含まれます 誰かがログインするのを待っている可能性のあるプロセス。 TTYからの入力を読み取る複数のプロセスを持つ 予期しない結果につながります。
setsid 新しいセッションでコマンドを開始します。
commandに注意してください sttyの設定に注意する必要があります 正しく設定します。例: 「調理済みモード」とonlcrをオンにします 改行を出力すると、キャリッジリターンなどが追加されます。