sudo로 시작된 실행 중인 프로세스를 백그라운드로 보내는 방법은 무엇입니까?

sudo로 시작된 실행 중인 프로세스를 백그라운드로 보내는 방법은 무엇입니까?

방금 SLC6(RHEL6에서 파생된 SL6)을 설치했습니다. 프로세스를 시작한 터미널에서 Ctrl-Z를 눌러 실행 중인 프로세스를 백그라운드로 보낼 수 있습니다. 그러나 sudo를 사용하여 명령을 시작하면 이 작업을 수행할 수 없습니다. SLC5에서는 원활하게 작동했습니다.

이를 허용하기 위해 수행할 수 있는 구성이 있습니까?

편집 다음은 실행하려는 명령의 예입니다.

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

Ctrl-Z를 누르면 ^Z 기호가 표시되지만 그 외에는 아무 일도 일어나지 않습니다. 이제 Ctrl-C도 효과가 없다는 것을 깨달았습니다.

sudo 없이:

[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-ZSIGTSTP프로세스에 신호를 보냅니다.

가장 간단한 방법은 다음과 같습니다.

sudo kill -TSTP <pid>

다른 껍질에서.

답변3

여기서 진짜 문제는 실행하려는 명령이 Emacs라는 것입니다. Emacs를 루트로 실행하는 것은 결코 좋은 생각이 아닙니다. Emacs는 또한 많은 키 입력을 덮어쓰기 때문에 C-z그 이유만으로는 작동하지 않을 수 있습니다. root이미 로그인 한 경우 emacs디스플레이에 그래픽으로 시작될 수 있습니다. root기타 등등

sudo:Emacs에서 파일을 편집하려면 Tramp의 방법을 확인하세요 sudo. 예를 들어 를 편집하려면 경로를 로 /etc/motd입력 하고 입력하세요 .C-x C-f/sudo:root@localhost:/etc/motd

관련 정보