我刚刚安装了SLC6(源自RHEL6的SL6)。我可以通过在启动进程的终端中按 Ctrl-Z 将正在运行的进程发送到后台。但是,当我使用 sudo 启动命令时,我无法执行此操作。它曾经在 SLC5 中无缝工作。
我可以做任何配置来允许这样做吗?
编辑这是我尝试运行的命令示例:
[user@pcald02 ~]$ sudo emacs
^Z^C
Ctrl-Z 使符号 ^Z 出现,但没有其他反应。现在我意识到即使Ctrl-C也是无效的。
没有须藤:
[user@pcald02 ~]$ emacs
^Z
[1]+ Stopped emacs
[user@pcald02 ~]$
答案1
如果我理解你的问题,下面的内容对我来说在 CentOS 6.4 上工作得很好,我希望它与 SLC6 非常相似:
初始命令$ sudo sleep 300
^Z
[1]+ Stopped sudo sleep 300
背景
$ bg
[1]+ sudo sleep 300 &
$ jobs
[1]+ Running sudo sleep 300 &
$ ps -eaf|grep sudo
root 25752 25669 0 09:53 pts/0 00:00:00 sudo sleep 300
sam 25755 25669 0 09:53 pts/0 00:00:00 grep sudo
杀死工作 ( Ctrl+ C)
$ fg
sudo sleep 300
^C
$ ps -eaf|grep sudo
sam 25758 25669 0 09:53 pts/0 00:00:00 grep sudo
操作系统信息
$ uname -a
Linux mungr 2.6.32-358.6.1.el6.x86_64 #1 SMP Tue Apr 23 19:29:00 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/redhat-release
CentOS release 6.4 (Final)
答案2
CTRL-Z
SIGTSTP
向进程发送信号。
所以最简单的方法是:
sudo kill -TSTP <pid>
来自另一个壳。
答案3
我猜这里真正的问题是您尝试运行的命令是 Emacs。以 root 身份运行 Emacs 绝不是一个好主意。 Emacs 还会覆盖许多击键,因此C-z
可能仅仅因为这个原因而无法工作。如果root
已经登录,可能会在显示屏emacs
上以图形方式启动。root
等等等等.
查看使用sudo:
Tramp 中的方法从 Emacs 中编辑文件sudo
。例如,要编辑/etc/motd
,请执行C-x C-f
并将路径键入为/sudo:root@localhost:/etc/motd
。