サーバー上で 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
のファイル記述子であり、シェルに標準エラー出力を標準出力 (ファイル記述子) にルーティングするように指示します。 は、という名前のファイルではなく、そのコンテキストでファイル記述子であることをシェルが認識できるようにするために必要です。 は、通常標準エラーに書き込まれるエラー メッセージをファイル (標準出力から取得) にキャプチャするために必要です。stderr
2>&1
1
&1
1
2>&1
my.log
I/O リダイレクトシェルで I/O リダイレクトを処理する方法の詳細については、 を参照してください。
コマンドが定期的に出力を送信する場合は、 を使用して出力を随時確認するtail my.log
か、出力を「ライブ」で追跡したい場合は を使用できますtail -f my.log
。最後に、プロセスを強制終了する必要がある場合は、次のように実行できます。
kill -9 `cat save_pid.txt`
rm save_pid.txt