mpiexecを使用してvimを呼び出すと、「警告:出力が端末にありません/警告:入力が端末から出ていません」と表示されます。

mpiexecを使用してvimを呼び出すと、「警告:出力が端末にありません/警告:入力が端末から出ていません」と表示されます。

私の質問は少し技術的です。

特別な理由から、mpiexecの後にvimを呼び出す必要があります。

例:

mpiexec -n 1 vim mytext.txt

ただし、これは次の警告メッセージを提供します。

Vim: Warning: Output is not to a terminal 
Vim: Warning: Input is not from a terminal

その後、vimが不自然に動作し、入力コマンドがエディタでうまく解釈されず、操作が私がやっているのと同じくらい簡単ではありません。

vim mytext.txt

mpiexecの後にvimを使用できるように、入力/出力を起動端末に正しくリダイレ​​クトする方法についてのアイデアはありますか?

実際、最終的な目標は、特定のプロセスの並列デバッグに gdb を使用し、gdb 内の vim エディタを使用して機能を編集することです。

例:

mpiexec -s 1 myprog : gdb myprog

したがって、両方のプロセスで "myprog"プログラムを起動し、2番目のプロセス(proc 1など)でgdbを使用し、stdinをproc 1にリダイレクトします(-s 1 [mpiexec -helpを参照]のおかげで)。

ただし、gdbでvimエディタを使用して関数を編集したい場合は、同じ問題に直面しています。

Vim: Warning: Output is not to a terminal
Vim: Warning: Input is not from a terminal

簡単な解決策はxtermウィンドウを起動することですが、このアプローチは避けたいと思います。

mpiexec myprog : xterm -e gdb myprog

ご協力ありがとうございます。

これは私のLinuxディストリビューションです。

NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

ベストアンサー1

mpiexecSSHを介してパラメータプロセスを開始すると、入力と出力は実際には端末に接続されなくなります。あなたが望むのはこのトリックです:

mpiexec -n 4 xterm -e gdb yourprogram

おすすめ記事