サーバーで実行されているプロセスを終了できません。

サーバーで実行されているプロセスを終了できません。

サーバーでRコンソールを実行しましたが、プロセスが予想よりはるかに長くかかりました。だからctrl + zで閉じようとしましたが、成功しませんでした。いよいよターミナルを閉じました。ただし、topコマンドを確認すると、プロセスはまだ存在します。私はkillを使用しましたが、プロセスを終了しません。親コマンド出力:

 PID   USER     PR   NI  VIRT    RES    SHR  S  %CPU %MEM  TIME+ COMMAND     
27448 zhenyang  20   0 20.133g 0.020t 3.840g R 100.0 21.3  72:00.06 R 

ホームページを確認してみると、ctrl+zを押すとプロセスがバックグラウンドに入りますが、fgコマンドが動作しないという方もいらっしゃいました。

誰でも助けることができますか?

答え1

コマンドを実行しkill、プロセスIDを渡します(例:あなたの場合)。

kill 27448

デフォルトでは、これはプロセスを終了しますが、プログラムがシグナルハンドラを設定した後でも実行できます。プロセスが引き続き実行される場合は、以下を使用します。

kill -KILL 27448

(またはそれに対応するkill -9 27448)。 KILL信号は捕捉できず、常にプロセスを終了します。 (たぶんすぐにはそうではないかもしれません。ただし、長い入力/出力を実行すると、プロセスは終了します。 )

答え2

CTRL+はZプロセスを終了せずに実行を一時停止します(停止とも呼ばれます)。これはTSTP、プロセスに信号を送信してCONT再開できる信号をプロセスに送信することによって行われます。

kill -CONT <pid>

一時停止すると、プロセスは、信号を使用してプロセスが再開されるまで、デフォルトで送信される信号などのTERM他の良好な信号に応答しません。この時点で、プロセスは保留中のすべての信号をただちに処理します。シグナルがプロセスを正常に終了する機会を与えずにすぐにプロセスを終了することは例外です。killCONTKILL

kill -KILL <pid>

これは一般的に落胆プロセスが通常行う分解/クリーンアップ操作をスキップするためです。代わりにフォアグラウンドプロセスにCTRL+ZCTRL+CこれはINT通常、(常にではないが)信号と同様の動作を有するプロセスに信号を送る。TERMプロセスは正常に終了する必要があります。

Linux/bash プロセスのジョブ制御について詳しく読むことができます。ここ

関連情報