nohup プロセスを強制終了するためのプロセス ID を取得するにはどうすればよいでしょうか? [closed] 質問する

nohup プロセスを強制終了するためのプロセス ID を取得するにはどうすればよいでしょうか? [closed] 質問する

サーバー上で nohup プロセスを実行しています。それを終了しようとすると、代わりに putty コンソールが閉じます。

プロセス ID を見つける方法は次のとおりです。

ps -ef |grep nohup 

これは殺すための命令です

 kill -9 1787 787

ベストアンサー1

nohupと を使用してタスクをバックグラウンドにすると、バックグラウンド演算子 ( &) によってコマンド プロンプトに 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

これは実行されmy_command、すべての出力を に保存しますmy.log(スクリプトでは、$!は最後に実行されたプロセスの PID を表します)。 は標準エラー ( )2のファイル記述子であり、シェルに標準エラー出力を標準出力 (ファイル記述子) にルーティングするように指示します。 は、という名前のファイルではなく、そのコンテキストでファイル記述子であることをシェルが認識できるようにするために必要です。 は、通常標準エラーに書き込まれるエラー メッセージをファイル (標準出力から取得) にキャプチャするために必要です。stderr2>&11&112>&1my.logI/O リダイレクトシェルで I/O リダイレクトを処理する方法の詳細については、 を参照してください。

コマンドが定期的に出力を送信する場合は、 を使用して出力を随時確認するtail my.logか、出力を「ライブ」で追跡したい場合は を使用できますtail -f my.log。最後に、プロセスを強制終了する必要がある場合は、次のように実行できます。

kill -9 `cat save_pid.txt`
rm save_pid.txt

おすすめ記事