web-dev-qa-db-ja.com

プロセスの起源を見つけて永久に停止するにはどうすればよいですか?

Apacheサーバーを実行しているUbuntuシステムがあります。プロセスcache.shを見つけました。これは暗号マイニングプロセスである可能性があり、サーバーで常に実行され、最大98%のCPUを消費します。これにより、MySQLやApacheのような他の機能が停止します。

topコマンドを使用して、cache.shがすべてのCPUを消費していることを確認しました。

プロセスを強制終了しようとしましたが、しばらくしてから再び実行を開始します。

その後、プロセスを強制終了する代わりに一時停止できることを学びましたが、それは非常にうまくいきますが、それが何であるかを見つけて永久に削除したいです。サーバー全体を再起動すると、このプロセスが自動的に開始されます。

プロセスcache.shはwww-dataユーザーの下で実行されます。これは、同じユーザーの下で実行されるApacheプロセスの処理も担当します。

このプロセスの起源を見つけてこの問題を解決するにはどうすればよいですか?

2
Deepak

Cache.shプロセスの/procディレクトリを確認します。各プロセスには、次のような情報を保持する/proc/<pid>/ディレクトリがあります。

  • cwd –へのリンクc urrent w orking d irectory
  • fd –開いているファイルへのリンクがあるディレクトリ(f ile d escriptors)
  • cmdline –プロセスを開始するために使用されたコマンドラインを確認するためにそれを読みます
  • environ –そのプロセスの環境変数
  • root –プロセスがルートディレクトリと見なすものへのリンク。 chrootされない限り、/になります。

ps auxfを実行すると、誰が何を分岐したかが表示されるため、何がプロセスを呼び出しているのかをよりよく知ることができます。

lsof -p PIDを実行すると、実行中のプロセスによって開かれたファイルが表示されます。

ソース: Linux:プロセスが開始された場所と開始された方法を知る方法

3
karel