为啥emacs会逃避getty?
Posted
技术标签:
【中文标题】为啥emacs会逃避getty?【英文标题】:Why does emacs escape getty?为什么emacs会逃避getty? 【发布时间】:2022-01-22 13:33:38 【问题描述】:我创建了两个虚拟连续剧
socat -d -d pty,raw,echo=0 pty,raw,echo=0
在特定情况下,我得到了 /dev/pts/9 和 /dev/pts/16 然后我在一侧启动屏幕,在一个 X 终端中,特别是 gnome-terminal
screen /dev/pts/9 9600 vt52
getty 在另一边(从根),在另一个 X 终端(同样是 gnome-terminal)
getty pts/16 9600 vt52
然后我登录屏幕终端,我可以 ls 等。但是,当我启动 emacs(在屏幕内,所以它是文本版本,而不是 X 版本)时,我在 getty 的 X 终端上得到 emacs 的输出,而不是在屏幕内的X 终端。这怎么可能?我该如何解决?
我不知道这是否相关,但是当我登录时,我得到了
-bash: cannot set terminal process group (64718): Inappropriate ioctl for device
-bash: no job control in this shell
【问题讨论】:
(1)DISPLAY
环境变量控制连接到哪个 X 服务器。 (2) 您的设置可能被配置为使用emacsclient
或类似方法来连接到预先存在的 emacs 副本。 (3) 很多重要的细节并没有真正明确地包含在内,而且不完全清楚这个问题是否适合在这里而不是Unix & Linux。
您能说明哪些细节很重要吗?我可以编辑问题以反映这一点。不,emacs 不是 emacsclient 的链接
如果我没记错的话,DISPLAY 只对使用 X 服务器的程序很重要。在这种情况下,emacs 是作为文本界面程序而不是 X 程序启动的。
如果问题无关紧要,为什么还要在问题中谈论 X?更容易谈论终端。无论如何-您排除了emacsclient吗?另外,每个shell中tty
命令的输出是什么?
@CharlesDuffy 看到答案
【参考方案1】:
答案由 Andres Navarro (https://github.com/AndresNavarro82) 提供。必须使用setsid,即
sudo setsid getty pts/16 9600 vt52
【讨论】:
以上是关于为啥emacs会逃避getty?的主要内容,如果未能解决你的问题,请参考以下文章
osx 上的 emacs 23 和 24:为啥 aquamacs-kill-word 有时会删除到行尾?