我想cssh
使用terminator
终端模拟器,而不是默认的xterm
.我~/.clusterssh/config
更改了以下行:
#terminal=/usr/bin/xterm
terminal=/usr/bin/terminator
但是当我开始时cssh
我收到以下错误:
Opening to: server1 server2
Usage: terminator [options]
terminator: error: no such option: -g
Usage: terminator [options]
terminator: error: no such option: -g
Cannot open pipe for reading when talking to server1 : Interrupted system call
显然,cssh
正在将一些参数传递给xterm
,但它terminator
无法识别。
我该如何解决这个问题?
答案1
我怀疑你可能无法让它工作,因为我怀疑终结者会接受合成事件,并且我不认为每个窗口模型的多个终端是兼容的,但如果你想尝试最好的来源是 README.Debian.gz来自 debian 软件包。我已经在下面包含了相关部分,但是仅使用终结者的分组选项可能会简单得多
Super+g:对所有终端进行分组,以便发送到其中一个终端的任何输入都会发送到所有终端。(来自手册页)
终端模拟器
Clusterssh 不再允许使用任何提供 x-terminal-emulator 的 Debian 终端模拟器,因为其中许多不支持 XSendEvents 资源。默认情况下,clustersh 将调用 xterm。要更改此设置,请创建或修改您的配置文件以包含以下行:
terminal = /path/to/my/favorite/terminal-emulator
请注意,此终端仿真器必须接受“-xrm”命令行开关来设置 XTerm.VT100.allowSendEvents:true (或执行相同操作的操作)。如果您的终端模拟器通过不同的开关提供等效功能,或者隐式提供它,则可以使用配置文件中的参数“terminal_allow_send_events”进行设置。
如果您在使 clustersh 与 uxterm 配合使用时遇到问题,您应该从配置文件中删除“terminal_allow_send_events”选项,或者将该值更新为:
UXTerm.VT100.allowSendEvents:true
或者简单地:
*.VT100.allowSendEvents:true
旧版本的 clustersh 会创建 .csshrc 文件,并将类设置为“XTerm”,这会阻止 uxterm 接收事件。
终端模拟器还必须接受:
-e <command> -font <font> System-wide configure changes can be made by editing /etc/csshrc.
Debian 终端模拟器软件包经过测试,已知不能与 clustersh 一起使用:
(请直接向维护人员或通过错误跟踪系统发送更新)gnome 终端 konsole kterm xvt xfce4 终端 mlterm
Debian 终端模拟器软件包经过测试并相信可以工作:
xterm rxvt rxvt-beta aterm(仅在 ~/.clusterssh/config 中使用“terminal_allow_send_events =”) wterm(仅在 ~/.clusterssh/config 中使用“terminal_allow_send_events =”) pterm(尽管在显示任何输出之前需要输入焦点) eterm(尽管它不使用 -font 开关)
请注意,像 lxterm 和 uxterm 这样立即进入后台的 xterm 包装器将不起作用。
如果您使用脚本生成终端,请确保它接受 $* 作为参数,并且它本身不会后台运行。
答案2
似乎terminator
不接受cssh
s (默认或硬连线)参数。与其尝试改变这些,不如为终结者启动创建一个包装器:
cat > /usr/bin/start_terminator.sh
#!/bin/bash
# debug info: dump parameters
echo "start_terminator.sh called with paremeters: ${@}" > /tmp/start_terminator.sh.cmdline
# now start terminator avoiding invalid parameters given by cssh
exec /usr/bin/terminator
^D
(^D是Ctrl+D结束键盘输入和cat
命令),然后
chmod 755 /usr/bin/start_terminator.sh
并将中的替换terminal=/usr/bin/terminator
为.如果终止符在此更改后未启动,请查看我们的调试输出,以了解在终止符时是否需要传递某些参数。terminal=/usr/bin/start_terminator.sh
~/.clusterssh/config
/tmp/start_terminator.sh.cmdline
/usr/bin/terminator
exec
答案3
根据manual for cssh
它有这样的说法:
--tile,-g|--no-tile,-G 启用|禁用窗口平铺(覆盖配置文件)
话虽如此,我建议禁用该window tiling
选项,然后检查manual for terminator
关于窗户平铺有这样的说法:
--geometry=GEOMETRY 指定终结者窗口的首选大小和位置;参见 x(7)。
似乎需要一些常规配置选项来切换终端cssh
。