使用 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”,在第二个进程(即 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

mpiexec通过 ssh 启动参数进程,因此输入和输出确实不再与终端连接。你想要的是这个技巧:

mpiexec -n 4 xterm -e gdb yourprogram

相关内容