web-dev-qa-db-ja.com

sudoで開始された実行中のプロセスをバックグラウンドに送信する方法は?

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 ~]$ 
5
Barth

ここでの本当の問題は、実行しようとしているコマンドがEmacsであるということだと思います。 rootとしてEmacsを実行することは、決して良い考えではありません。 Emacsはキーストロークの数もオーバーライドするため、C-zはその理由だけでは機能しない可能性があります。 rootがすでにログインしている場合、emacsrootのディスプレイでグラフィカルに起動する場合があります。等.

EmacsのSudoを使用してファイルを編集するには、TrampのSudo:メソッドの使用をご覧ください。たとえば、/etc/motdを編集するには、C-x C-fを実行し、パスを/Sudo:root@localhost:/etc/motdと入力します。

2
tripleee

CTRL-ZはシグナルSIGTSTPをプロセスに送信します。

したがって、これを行う最も簡単な方法は次のとおりです。

Sudo kill -TSTP <pid>

別のシェルから。

4
Karlson