散乱プロセスのソースを見つける方法は?

散乱プロセスのソースを見つける方法は?

RedHat LinuxインスタンスでJavaプロセスが実行されています。

問題は、殺した後も再び現れるということです。どこを見るべきか分からない。私はcrontabに行きましたが、運がありません。

PPIDを見てみましたが、初期化(1)を指しています。

ソースを見つける方法を知っていますか?

ベストアンサー1

いくつかの可能性があります(いくつかは他の答えで言及されています)。

  1. 頻繁に実行されるシステムまたはユーザーcronjob、
  2. SysV initでディレクティブを含む/etc/inittabサービスエントリrespawn
  3. systemdではユニットファイルRestartオプションがno
  4. Upstartでは、ディレクティブを含むサービス構成ファイルrespawn
  5. プロセス監視ツール(例:monitまたは
  6. これは特定のサービスの一時的な監視プロセスです。

興味深い新しいツール(Linuxのみ)は、プロセスが開始された場所に関する追加情報を提供できます。システムマイニング

SysdigはLinuxカーネルのトレースポイント機能を使用してシステム全体に高速ですstrace

たとえば、起動するすべてのプロセスを表示するには、ls次のようにします。

sudo sysdig evt.type=execve and evt.arg.exe=ls

どこかで実行すると、ls次のメッセージが表示されます。

245490 16:53:54.090856066 3 ls (10053) < execve res=0 exe=ls args=--color=auto. tid=10053(ls) pid=10053(ls) ptid=9204(bash) cwd=/home/steved fdlimit=1024 pgft_maj=0 pgft_min=37 vm_size=412 vm_rss=4 vm_swap=0 env=...

返された環境情報が切り捨てられましたが、ptidにはexecveを呼び出したプログラムの名前とpidが見えます。 execve新しいコマンドを実行するためにLinuxのシステムコールが使用されます(他のすべてのexec呼び出しはexecveへのフロントエンドのみです)。

おすすめ記事