私はちょうど何を殺した?

私はちょうど何を殺した?

私が殺したばかりのものを知る方法はありますか?

$ 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権限が必要な場合があります。を使用すると、lastcommPIDや引数ではなくコマンド名のみが追跡されます。環境マッチングを介してどのプロセスかを把握する必要があります。 Linuxでは、lastcommプロセスが終了した日付が表示されますが、1分単位で表示され、コマンドがシグナルで終了Xした場合は、コマンド名の後にフラグが付けられます。

GNU acctはプロセスIDを含む追加情報を追跡しますが、lastcommコマンドはそれを表示しません。以下を実行する必要があります。dump-acct、残念ながら、コマンドが信号によって終了したかどうかは示されません。

dump-acct /var/log/account/pacct | awk -F '|' '$10 ~ / *2302($| )/'

Linux監査など、プロセスを記録できる他のサブシステムもありますが、通常はそうするように構成されていません。

おすすめ記事