私が殺したばかりのものを知る方法はありますか?
$ ps -A -o pid,cmd | grep someApp | grep -v grep
2802 python someApp.py
$ sudo kill 2302
$
編集する:明確にするには、PID 2302を終了する前にPID 2302が何であるかを知る必要があります。このps
引用は、私がそれが何であるかもしれないまま2302をどのように殺したかを説明するためのものです。
ベストアンサー1
知っている普遍的な方法はありませんが、手がかりがあるかもしれません。
KILL信号の代わりにTERM信号を送信したので、プログラムは信号ハンドラを実行する機会がありました。まったく死んでいない可能性があり、どこかにログエントリを残した可能性があります。プロセスがまだ実行中であることをps 2302
確認し、そうでない場合はシステムログを確認してください。
可能であれば、すべてのプロセスのログがあります。プロセス会計有効です。これはLinuxで次のように実行できます。GNUアカウントただし、ほとんどのディストリビューションでは、このパッケージはデフォルトでインストールされません。プロセスアカウントが有効になっている場合は、次を実行します。lastcomm
(最新のものから)最後に終了したプロセスを表示するには、root権限が必要な場合があります。を使用すると、lastcomm
PIDや引数ではなくコマンド名のみが追跡されます。環境マッチングを介してどのプロセスかを把握する必要があります。 Linuxでは、lastcomm
プロセスが終了した日付が表示されますが、1分単位で表示され、コマンドがシグナルで終了X
した場合は、コマンド名の後にフラグが付けられます。
GNU acctはプロセスIDを含む追加情報を追跡しますが、lastcomm
コマンドはそれを表示しません。以下を実行する必要があります。dump-acct
、残念ながら、コマンドが信号によって終了したかどうかは示されません。
dump-acct /var/log/account/pacct | awk -F '|' '$10 ~ / *2302($| )/'
Linux監査など、プロセスを記録できる他のサブシステムもありますが、通常はそうするように構成されていません。