gzip
私はKubuntuシステムのプロセスがランダムに始まり、多くのリソースを占有し、ラップトップファンが狂ったように動作する問題をしばらく経験しました。プロセスが表示され、gzip -c --rsyncable --best
長時間htop
実行されます。原因が何なのかわかりません。システムは Kubuntu 14.04 で、バックアップ計画は設定されていません。次回プロセスが現れたときにプロセスの原因をどのように見つけるかを知っている人はいますか? Google で検索しましたが、まだ理由が見つかりません。コマンドに関するいくつかの提案を見ましたが、ps
そこにあるすべての行のgrepは実際には何も指していません。
答え1
プロセスツリー
プロセスの実行中にプロセス階層を表示するには、ps
オプションを試してください。f
ps axuf
その後、プロセスツリーを取得する必要があります。これは、親プロセスが何であるかを確認する必要があることを意味しますgzip
。
gzip
thenの直系の子孫の場合、プロセスを作成したinit
可能性がないため、親プロセスが終了した可能性があります。init
gzip
予約されたこと
crontab
また、sをチェックして生成されたエントリがあることを確認する必要があります。あなたが見ているプロセスを実行しているユーザーはどこにいますかsudo crontab -l -u <user>
(あなたの場合はそうです)。user
gzip
root
このシステムにバックグラウンドサービス設定などの操作を行った他のユーザーがいる場合は、そのcrontab
ユーザーも確認してください。gzip
実行中という事実がroot
トリガされた元のプロセスも実行中であることをgzip
保証するものではありません。を実行すると、root
既存のリストをすべて表示できます。crontab
sudo ls /var/spool/cron/crontabs
丸太
プロセスの作成時に疑わしいエントリがあるかどうか、システムログを確認してください。 Kubuntuがログファイルの名前を別々に指定しているかどうかはわかりませんが、標準のUbuntuでは少なくとも/var/log/syslog
。
最後の手段:gzipラッパー
これらのいずれかが発生しない場合は、gzip
バイナリ名を変更して渡された引数で始まる小さなラッパーを置くことができますが、その時点でgzip
システム状態もキャプチャできます。
答え2
おそらく使用するファイルに集中する必要があります。
lsof -c gzip
...かなり良いアイデアを与えます。質問の画像のリストを強調表示した後にのみhtop
押すと、これがすぐに有効になります。l
これに加えて、htop
キーストロークで要求するとプロセスツリーも表示されるため、F5
プロセスのソース(存在する場合)を直接確認できます。
Linuxシステムの場合:
ps -Fwwp"$((gzip_ppid=$(ps -oppid= -Cgzip)))"
fuser -vau "/proc/$gzip_ppid/fd/"*
gzip
...親プロセスとそれが使用するファイル、およびそれを使用する他のプロセスに関する多くの情報を印刷する必要があります。
答え3
pstreeは、何が生成されたかを示す正しい形式の出力を提供します(親がgzipコマンドを生成した直後に死ぬことはないと仮定します)。
また確認してみてくださいコマンドライン引数を含むすべての実行されたコマンドを記録する簡単な方法はありますか?
答え4
以下は、何が起こっているのかを理解するのに役立ついくつかのヒントです。
問題のあるプロセスのPIDを取得します。
$ pgrep -a gzip 25267 gzip -c --best file
私のシステム(主な仕事を始めたところ
gzip
)は単一のPID:25267を返します。複数のPIDがある可能性があるため、正しいPIDを選択したことを確認してください。この-a
フラグはpgrep
コマンドライン全体を印刷し、正確に何が実行されているかを確認するように指示します。これを開始したプロセスのPID、親PID、またはPPID、および責任あるユーザーを取得します。
$ ps -p 25267 -o user -o pid -o pgid -o args USER PID PGID COMMAND terdon 25267 25266 gzip -c --best file
今、私たちはPIDを使用するプロセスによって
gzip
開始されることを知っています。terdon
25266
親プロセスが何であるかをご覧ください。
$ ps -p 25266 -o user -o pid -o pgid -o args USER PID PGID COMMAND terdon 25266 25266 /bin/bash /home/terdon/scripts/a.sh
またはプロセスツリーを見てください。
$ pstree -p 25266 a.sh(25266)───gzip(25267)
どのディレクトリで実行されているかを確認してください(Linux):
$ readlink -f /proc/25267/cwd /home/terdon/foo
/home/terdon/scripts/a.sh
したがって、私の場合はシェルスクリプトによって開始されました/home/terdon/foo
。