私はサーバー上でnohupプロセスを実行しています。私がそれを殺そうとすると、代わりにパテのコンソールが閉じます。プロセスIDを取得してnohupプロセスを強制終了するにはどうすればいいですか?
これは私がプロセスIDを探してみる方法です:
ps -ef |grep nohup
これはnohup
を使用する場合
kill -9 1787 787
私はサーバー上でnohupプロセスを実行しています。私がそれを殺そうとすると、代わりにパテのコンソールが閉じます。プロセスIDを取得してnohupプロセスを強制終了するにはどうすればいいですか?
これは私がプロセスIDを探してみる方法です:
ps -ef |grep nohup
これはnohup
を使用する場合
kill -9 1787 787
を殺すためのコマンドであり、あなたは、バックグラウンドでバックグラウンド作業をタスクを置きます(&
)は、コマンドプロンプトでPIDを表示します。プロセスを手動で管理する計画であれば、そのPIDを保存し、必要に応じて後で使用してkill PID
またはkill -9 PID
(強制終了する必要がある場合)を使用してプロセスを終了することができます。あるいは、PIDを後でps -ef | grep "command name"
で見つけてそこからPIDを見つけることができます。問題のコマンドの出力では、nohup
キーワード/コマンド自体がps
出力に表示されないことに注意してください。
nohup my_command > my.log 2>&1 &
echo $! > save_pid.txt
これは(スクリプトで、$!
は、最後に実行されたプロセスのPIDを表します)my.log
にすべての出力を保存しmy_command
を実行します:スクリプトを使用した場合
することは、あなたのような何かを行うことができます。 2
は標準エラー(stderr
)のファイル記述子で、2>&1
はシェルに標準エラー出力を標準出力(ファイル記述子1
)に送るように指示します。それは&1
を必要とするので、シェルはファイルが1
の代わりにそのコンテキストのファイル記述子であることを知るようにします。 2>&1
は、通常標準エラーに書き込まれたエラーメッセージを、my.log
ファイル(標準出力からのもの)に取り込むために必要です。シェルによるI/Oリダイレクション処理の詳細については、I/O Redirectionを参照してください。
コマンドが出力を定期的に送信する場合は、出力を時々tail my.log
で確認するか、またはそれに従う場合はtail -f my.log
を使用できます。あなたがプロセスを殺すために必要がある場合は最後に、あなたは経由でそれを行うことができます。
kill -9 `cat save_pid.txt`
rm save_pid.txt
私はVPSサーバー(およびSSH経由 - パテ)上のRed Hat Linuxを使用しています私のために次のように働いた、:
ユーザー名を見つける最初の列に続いてps -ef
;:
まず、あなたはすべての実行中のプロセスをリスト私はそれを見つけ、次の3回:
た
kill PID
(PIDをnohup proceもちろんのssのPID)
それはそれです!
私はこの答えは私ものbashやSSHに非常に新しいです誰かのために役立つことを願っていますが、私はここに必要な知識の95%を発見した:)
あなたは
kill -9 `pgrep [command name]`
非常にいいです!私は 'pkill [コマンド名]'を使いました。最も古いマッチングプロセスを強制終了するために '-o'フラグを使うことができます。代わりに' -n'を使って最新のものを使うことができます。 – zanona
を試みることができます私は、私は、コマンド名を指定することにより、上記のバックグラウンド・プロセスのPIDを取得することができ、以下のコマンド
nohup ruby script.rb &
と、バックグラウンドでRubyスクリプトを実行していたとします。私の場合、コマンドはルビーです。
ps -ef | grep ruby
出力
ubuntu 25938 25742 0 05:16 pts/0 00:00:00 ruby test.rb
は今、あなたは簡単に
kill 25938
Sanjay、私は何も分からないと確信しています。あなたの答えは何年前に提供された答えと何が違うのですか? 'ps -ef'と' kill'はどちらも上でよくカバーされていたので、新しい部分は何ですか? –
ps -efは長いリストの出力を提供し、この長いリストからの検索は難しくなります。だから私はps -ef | grep rubyは単にps -efを実行するよりもpidを検索するコマンドです –
仕事はあなたにはnohupプロセスのリストのためのPIDを与える必要がありを-l killコマンドを使用してプロセスを強制終了することができます。 それらを穏やかに(-9)殺す。 ;)
ジョブが現在のシェルで開始された場合のみです。また、通常の信号が動作しないことが分かっていない限り、 'kill -9'を実行しないでください。 – tripleee
これは、このJavaに係るすべての実行中のプロセスが、私の場合は
が表示されますPID
ps aux | grep java
を見つけるためには
あるUbuntu
タイプで動作します
johnjoe 3315 9.1 4.0 1465240 335728 ? Sl 09:42 3:19 java -jar batch.jar
今すぐkill i t kill -9 3315
最終的にゾンビプロセスが停止しました。
次のコマンドでdjangoサーバーを起動しました。
nohup manage.py runserver <localhost:port>
これは、CentOSの上で動作します。
:~ ns$netstat -ntlp
:~ ns$kill -9 PID
スクリプトまたはコマンドラインでそれを殺すためにしようとしていますか? 'nohup'を実行するときにPIDを保存し、後で' kill'のために使用するか、 'ps -ef'出力でそのコマンド名でプロセスを見つけてそこからPIDを取得する必要があります。 'nohup'ではなく、コマンド名を探す必要があります。 – lurker
@mbratch thxあなたは華麗です! – user2535056
@mbratchあなたはコメントの代わりに答えを出すべきです。 –