我正在编写一个快速脚本来读取用户输入并将其放入几个不同程序的命令中。我用来xterm -e
为每个单独的程序打开一个终端。
该脚本运行正常,但每次xterm -e
执行时都会显示错误消息:
警告:尝试连接到会话管理器,指定的身份验证协议均不受支持
关于如何阻止其显示有什么想法吗?
答案1
xterm
使用$SESSION_MANAGER
环境变量来了解如何联系 X 会话管理器。
在你的情况下,它似乎无法对其进行身份验证。该脚本可能在当前会话中启动,但以不同的用户身份启动。
无论如何,您不必向会话管理器报告,因此您也可以取消设置该变量以使错误消息消失:
unset -v SESSION_MANAGER
在类 POSIX shell 中(或unsetenv SESSION_MANAGER
在 (t)csh 或set -e SESSION_MANAGER
中fish
)
或者,如果您env
支持非标准-u
选项,请开始xterm
:
env -u SESSION_MANAGER xterm ...
答案2
实际上,xterm
并不直接使用SESSION_MANAGER
变量。这是在 Xt 和 SM 库中使用的。
禁用会话管理器功能的更直接方法可以在xterm 手册,首先在命令行选项中:
-sm
该选项,对应sessionMgt
资源,指示 xterm 应该设置会话管理器回调。
+sm
此选项指示 xterm 不应设置会话管理器回调。
然后在应用资源:
sessionMgt
(班级SessionMgt
)
如果该资源的价值是“真的”XtNdieCallback
、 xterm 为和设置会话管理器回调XtNsaveCallback
。默认为“真的”。
由于这些功能是在补丁 #169 (2002),很可能它们可用。
答案3
您可以通过以下方式忽略它:
xterm -e 2> /dev/null