pty

xtermはemacsの "home"キーの動作を変更するようです。
pty

xtermはemacsの "home"キーの動作を変更するようです。

xtermでは、キーボードのHOMEキーを押すと正常に送信されますが、^[[H開くと次のようにemacs -nw変更されます。私は自分の端末を作成しようとすると、emacsで動作しないことがわかりました。ただし、xterm(またはemacs)が動作を変更する原因が何であるかはわかりません。^[OHhomekhome^[[H また home「必要な」キーは、and khome(通常使用するホームキー、Num Lockがオフになっているキーボードの1)に対応します。 xevで異なるとマークしても、試みたすべての端末で常に同じことを行います。したがって、この質問...

Admin

gettyを使用してbashプロセスを_without_ ttyにリンクする方法
pty

gettyを使用してbashプロセスを_without_ ttyにリンクする方法

2つのシリアルUSBデバイスを互いに接続し、一方の/dev/ttyUSB1端を実行して/dev/ttyUSB2picocom/bin/bashを使用してもう一方の端に接続し、picocompicocomをローカル端末エミュレータとして使用できるように接続したいと思います。 私はこれを試しました setsid /bin/bash </dev/ttyUSB2 >/dev/ttyUSB2 2>&1 その後、ピココムで反対側に接続したのですが、画面に横説説(:~$ 0m:~$ 0m:~$ 0m:~$ 0m:~$ 0m:~$ 0m:~$ 0...

Admin

socatを使用して独自のptyペアを作成すると、ジョブ制御は機能しません。
pty

socatを使用して独自のptyペアを作成すると、ジョブ制御は機能しません。

私はパズルのさまざまな部分を見ながら、ターミナルエミュレータを理解しようとしています。 socatを使用してptyペアとシェルプロセスを開始し、picocomを使用して接続しようとしています。 これはsocatコマンドの私の理解です。 $ socat -d -d PTY,raw,echo=0 EXEC:"/bin/sh",pty,stderr,setsid,sane 2024/03/12 08:12:16 socat[9106] N PTY is /dev/pts/5 2024/03/12 08:12:16 socat[9106] N forking off...

Admin

サブプロセス内でPTYのファイル記述子を取得するには?
pty

サブプロセス内でPTYのファイル記述子を取得するには?

https://man7.org/linux/man-pages/man7/pty.7.html 「UNIX 98擬似端末」では動作すると言いますがptsname(その後open)、この関数はファイル記述子を受け入れます。そこに0(STDIN)と1(STDOUT)を入れようとしましたが、「デバイスに不適切なioctl」というエラーメッセージが表示され、失敗しました。 GNOME端末でプログラムを実行します。 私は他のxtermプログラムを書いていません。非同期(非ブロック)非標準低レベルの入出力用のファイル記述子を持っているだけです。 ...

Admin

疑似端末が互いに制御して戻りマークを取得する方法
pty

疑似端末が互いに制御して戻りマークを取得する方法

問題は:私の擬似端末は/ dev / pts / 0で、ターゲット擬似端末は/ dev / pts / 4であり、テキストdev / pts / 4を印刷するためにターゲット擬似端末を取得しようとしています。エコテキスト> /コマンドを使用してください。 したがって、最初の質問は次のようになります。 echo text > /dev/pts/4 コマンドを使用すると、ターゲットホストにテキストが表示されますが、1つの欠点は、テキストを表示した後にターゲットに別の行が表示され、Ctrl +を押す必要があることです。 c手動シャットダウン、上記の状況...

Admin

セットアッププログラムが他の端末で実行されているときにGDBが「制御端末を設定できません」という警告をどのように抑制できますか?
pty

セットアッププログラムが他の端末で実行されているときにGDBが「制御端末を設定できません」という警告をどのように抑制できますか?

私はプログラムをデバッグするためにGDBを使用しており、その出力をGDBを実行している端末以外の端末に送信したいと思います。これが私がやってきたことです: 2番目の端末を開き、を使用してデバイス名を確認し、同様のものを入手しttyてください/dev/pts/14。 私のGDBセッションでは、コマンドを使用してtty /dev/pts/14出力を端末に設定しました。 次に、runGDBでコマンドを実行してプログラムを起動します。 この設定は、出力をターミナル2として正しく指定しますが、問題はターミナル2の最初の行に常に次のものが表示されることです。 war...

Admin

プロセスをどのように再所有しますか?
pty

プロセスをどのように再所有しますか?

ショートカット(sxhkd)を使用してこのスクリプトを実行するとき: #!/bin/sh MUSIC_DIR="$HOME/music" songs=$(ls "$MUSIC_DIR") filename=$( echo -e "random\n$songs" | dmenu -l 30 -i -p "Play >> ") if [[ $filename = "random" ]] then filename=$(ls "$MUSIC_DIR" |shuf -n 1) fi if [[ -f "$MUSIC_DIR/$filen...

Admin

socatでシリアルデバイスの分離をシミュレートする方法
pty

socatでシリアルデバイスの分離をシミュレートする方法

このテストプログラムがあります。 import sys for line in sys.stdin: print(line.strip()) print("DONE") 実際のデバイス(FTDI)でラインを印刷する場合 python3 demo.py < /dev/ttyUSB0 その後、送信したすべての行を印刷してUSBケーブルを抜くと、DONEメッセージが表示されます。 一方、socatを使って偽のttyを生成すると、 socat -d -d pty,raw,echo=0,link=ttyFake pty,raw,echo=0,li...

Admin

ctrl + cを正しく処理するために私のシェルを取得しようとしています。
pty

ctrl + cを正しく処理するために私のシェルを取得しようとしています。

Ctrl Cを押したときに実行中のプログラムがSIGINTを受け取るようにシェルを設定する方法を理解しようとしていますが、bashを実行して内部で別のプログラムを実行してからCtrl + Cを押すと、シェルはSIGINTを受け取りません。実行中のプログラムは停止しますが、bashは停止しません。 これは、他のシェルでbashを起動するときにも当てはまります。 私は任意のキーを押すとサブルーチンを実行する独自の特別なシェルプログラムを作成しました。 #! /usr/bin/env bash set -e while true do echo pre...

Admin

ptyなしでシリアルターミナル(RS-232)を設定できますか?
pty

ptyなしでシリアルターミナル(RS-232)を設定できますか?

/dev/ttyS0RS-232ポートがあり、ヌルモデムを介して互いに接続されている2台のコンピュータがあります。 私は過去に外部端末がどのように機能していたのか、そしてこれが今日のLinuxの動作方法とどのように関連しているのかを少しずつ理解しようとしています。 私は次のように動作するようにしました: メインコンピュータ: $ sudo socat /dev/ttyS0,raw,echo=0 exec:"/bin/bash -i",pty,stderr,setsid,sigint,sane 端末: picocom -b 9600 /dev/ttyS0 ...

Admin

loginctlでグラフィックttyを決定する方法
pty

loginctlでグラフィックttyを決定する方法

Loginctlは多くのセッションをリストし、どのセッションがグラフィカルセッションであるかをプログラムで知りたいです(例:GNOMEデスクトップ)。 次の例では、GNomeデスクトップセッション、SSH接続、およびテキストセッション(getty)を開きました。 $ loginctl SESSION UID USER SEAT TTY 3 1000 user seat0 tty2 237 1000 user pts/2 260 1000 user seat0 tty3 3 sessions listed. $...

Admin

2 つのプロセス間通信に使用される擬似端末
pty

2 つのプロセス間通信に使用される擬似端末

第三者Cライブラリ(libmodbus重要な場合)シリアルデバイス(私の場合は/dev/ttyUSB0FTDIチップセットベースのUSB-RS485アダプタを介してRS-485などのデバイス)を介して通信します。 CLIパラメータに基づくこの実行可能ファイルは、コマンドを実行して(私の場合はModbusクライアントのように)応答を待つか(私の場合は外部Modbusサーバーから)、着信コマンドを受け取ることができます(私の場合は例(Modbusサーバー)その後、応答を生成します。 外部デバイスなしで自動的に実行可能ファイルをテストしたいと思います。つまり、実行...

Admin

/proc/self/fd/2は `sudo -u other_user`からアクセスできません。
pty

/proc/self/fd/2は `sudo -u other_user`からアクセスできません。

私はしばしばこれを使用してtee /proc/self/fd/2stdoutとstderrに何かを表示し、stdoutへのすべての出力を維持しながらstdoutをキャプチャします。 たとえば、次のようになりますdo.sh。 STD_OUT_STR=$(CMD ARGS ... 2>&1 | tee /proc/self/fd/2) # handle STD_OUT_STR ... ... これは非常にうまく機能します。 例えば、 ./do.sh デフォルトでは、次のように動作します。 bash -c 'echo hi | tee /proc...

Admin

ネットワークパイプを介して実行されているプロセスと端末の対話を実行する方法は?
pty

ネットワークパイプを介して実行されているプロセスと端末の対話を実行する方法は?

STDIOがリモートで接続できるように、端末で実行したいプログラムをどのように実行しますか? 具体的には、1つのホストでgdbを起動し、そのターミナルインターフェースにリモートで接続し、CTRL + Cを使用して実行を一時停止し、レイアウト(たとえばlayout regs)を変更できるようにします。下の画像は、私が達成したいことを示しています。 これまでに私が得た最も近い方法は、次のようにsocatptyを作成し、リモートホストでgdbを起動することです。 $ socat PTY,link=$HOME/somedev,rawer, SYSTEM:"gdb ...

Admin

socatを使用してシリアルデバイスをシミュレートするときにバッファを削除する方法
pty

socatを使用してシリアルデバイスをシミュレートするときにバッファを削除する方法

次のような偽のシリアルデバイスを作成しています。 socat -d -d pty,raw,echo=0 pty,raw,echo=0 毎回新しい番号を持つデバイスが作成されます。/dev/pty/6彼らに電話しましょう/dev/pty/7 私のテストコンピュータで利用できないハードウェアデバイスをシミュレートするために、/dev/pty/6毎秒20行の速度で書きました。 これと似ています(実際のプロジェクトではPythonで書いていますが、これは同じ問題を示しています)。 while true do date > /dev/pts/6 ...

Admin