nohupプロセスを停止できません。

nohupプロセスを停止できません。

非常に複雑な統計モデルを実行しようとしましたが、モデルに時間がかかることが予想され、nohupプロセスを実行しようとしました。しかし、プロセスを過小評価して完了するのに約260日以上かかる予定で、プロセスをキャンセルしたかったのです。

Get PIDを使ってみて、 ps aux |grep nohup次のような結果を得ました。

 \<username> 4920  0.0  0.0  14224   972 pts/15   S+   01:53   0:00 grep nohup

私が使ってみるとkill -9 14224何のプロセスもないと言いました。だからps -ef | grep beast-2私が入力した命令をすべて覚えていないので、それを使用しました。次のものを取り出します。

144039      1  0 Jul22 pts/12   00:00:00 /bin/sh /opt/anaconda3/bin/beast-2 -seed 777 -working -overwrite -instances 3 -threads 3 -beagle_SSE /home/<username>/XML/ST736_MTBD1.xml

もう一度使用して確認しましたkill -9 144039が、まだ新しいPIDでプロセスが実行されています。

どうですか?

ベストアンサー1

grep nohup述べたように、プロセス14224はps。したがって、プロンプトを受信するとgrep終了するので、killそのようなプロセスがないと報告するのは論理的です。

nohup出力には呼び出しプロセスは表示されませんps

それでは、殺すプロセスをどのように見つけますか?

私はあなたのものがないのでbeast-2デモンストレーションに使用しますnohup sleep 99 &

ps -ef | grep sleep

これが私に与えるでしょう

ljm      1491988 1336776  0 16:43 pts/0    00:00:00 sleep 999
ljm      1492021 1492069  0 16:45 pts/0    00:00:00 grep sleep

1492021は再び私のものなので、grepここでは問題ではありません。 1491988は私の気分が悪いですsleep。親PIDは1336776です。だからそれを確認すれば私に

$ ps -f 1336776
UID          PID    PPID  C STIME TTY      STAT   TIME CMD
ljm      1336776 1336769  0 Jul22 pts/0    Ss+    0:00 /bin/bash

これはbash。たとえば、次を使用してさらに上に移動できますpstree

$ pstree -ap  1336769
konsole,1336769
  └─bash,1336776
      └─sleep,1492051 999

したがって、親を殺すと、新しい親は作成されなくなりますbeast-2。ここでやるよ

kill 1336769

console と sleep を終了しますbashが、nohupped sleep は終了しません。

$ ps -ef | grep sleep
ljm      1492051       1  0 16:48 ?        00:00:00 sleep 999
ljm      1492285 1492069  0 16:57 pts/1    00:00:00 grep sleep

これで親プロセスが1initプロセスになりました。今寝ると

$ kill 1492051
$ ps -ef | grep sleep
ljm      1492329 1492069  0 16:59 pts/1    00:00:00 grep sleep

それからすべてが消えた。

おすすめ記事