Como enviar para o plano de fundo um processo em execução iniciado com o sudo?

5

Acabei de instalar o SLC6 (derivado do SL6 derivado do RHEL6). Eu posso enviar um processo em execução para o fundo apertando Ctrl-Z no terminal onde foi iniciado. No entanto, não consigo fazer isso quando iniciei o comando com o sudo. Costumava funcionar perfeitamente no SLC5.

Existe alguma configuração que eu possa fazer para permitir isso?

EDIT Este é um exemplo de comando que tento executar:

[user@pcald02 ~]$ sudo emacs
^Z^C

O Ctrl-Z faz os símbolos ^ Z aparecerem, mas nada mais acontece. Agora percebi que mesmo Ctrl-C é ineficaz.

Sem sudo:

[user@pcald02 ~]$ emacs
^Z
[1]+  Stopped                 emacs
[user@pcald02 ~]$ 
    
por Barth 02.07.2013 / 14:50

3 respostas

2

Eu estou supondo que o problema real aqui é que o comando que você está tentando executar é o Emacs. Executar o Emacs como root dificilmente é uma boa ideia. O Emacs também substitui um número de pressionamentos de teclas, portanto C-z pode não funcionar simplesmente por esse motivo. Se root já tiver efetuado login, emacs poderá iniciar graficamente na exibição de root . Etc, etc.

Veja o método sudo: da Tramp para editar arquivos usando sudo do Emacs. Por exemplo, para editar /etc/motd , do C-x C-f e digite o caminho como /sudo:root@localhost:/etc/motd .

    
por 03.07.2013 / 11:23
5

Se eu estou entendendo sua pergunta, o seguinte funcionou muito bem para mim no CentOS 6.4, que eu esperaria ser muito semelhante ao SLC6:

comando initital
$ sudo sleep 300
^Z
[1]+  Stopped                 sudo sleep 300
plano de fundo
$ 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
kill job ( Ctrl + C )
$ fg
sudo sleep 300
^C

$ ps -eaf|grep sudo
sam      25758 25669  0 09:53 pts/0    00:00:00 grep sudo
Informações do sistema operacional
$ 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)
    
por 02.07.2013 / 16:00
4

CTRL-Z envia o sinal SIGTSTP para o processo.

Portanto, a maneira mais simples de fazer isso é:

sudo kill -TSTP <pid>

de outro shell.

    
por 02.07.2013 / 15:06