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をrootとして実行することは決して良い考えではありません。 Emacsは多くのキーストロークを上書きするため、そのC-z理由だけでは機能しない可能性があります。rootすでにログインしている場合は、emacsディスプレイにグラフィックで起動できます。rootその他など

sudo:Emacsでファイルを編集するには、Trampの方法を確認してくださいsudo。たとえば、編集するには、パスをとして/etc/motd入力して入力します。C-x C-f/sudo:root@localhost:/etc/motd

関連情報