我的问题有点技术性。
由于特定原因,我需要在 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