无法恢复以root身份运行的编辑器


2

多年以来,当我一直在通过SSH连接工作时,我将运行sudo vi ...以编辑配置文件。如果需要在命令行上执行某些操作,则fg可以按Ctrl + Z挂起编辑器,执行操作,然后返回到它。

但这不再按预期工作(据我所知,截至Ubuntu 14.04)。编辑器暂停得很好,但是我第一次尝试恢复时好像没有任何反应(或者它可能会暂时恢复,然后又会暂停)。如果fg第二次尝试,编辑器似乎会继续,但是我按的任何键只会在控制台上回显。但是,此时按Ctrl + Z确实会挂起它,并使我返回外壳。

我不知道如何重新获得对编辑器的控制权。我通常只需要按sudo kill进程ID(它kill %1会抛出“不允许的操作”,这是我所期望的,因为编辑器以root身份运行)。

请不要建议使用screen和/或分开使用终端,因为我已经这样做了。我想知道是否有解决此特定问题的方法,因为按Ctrl + Z是一种根深蒂固的习惯,以至于我一直在不加思索地去做。Ubuntu最近更改了某些安全模型吗?

更新

我仍然没有弄清楚这个问题,但是我认为这与挂起嵌套进程有关。我不确定它是否特定于sudo。我一直无法可靠地复制它,但这是最常见的序列:

  1. sudo vifilename
  2. Ctrl+ Z暂停vi
  3. vianother-filename
  4. Ctrl+Z
  5. fg 1尝试恢复以root身份运行的vi。此时,shell会简单地说[1]+ Stopped sudo vi filenamefg 1再次尝试似乎可以恢复vi,但是任何击键都会简单地回显到控制台。

似乎正在发生的事情是,当我暂停时sudo visudovi进程都停止了。当我fg第一次时,仅sudo恢复。当我fg第二次时,sudo停止了,但是vi恢复了。在正常情况下,应恢复两个过程。


嗨,布莱恩,我无法用14.04.1 LTS重现您的问题。它似乎暂停并正常恢复。(VIM-Vi IM改进版本7.4.52。type vi给出了/usr/bin/vi)。只需尝试:检查包装的完整性debsum vim
Hastur 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.