RedHat LinuxインスタンスでJavaプロセスが実行されています。
問題は、殺した後も再び現れるということです。どこを見るべきか分からない。私はcrontabに行きましたが、運がありません。
PPIDを見てみましたが、初期化(1)を指しています。
ソースを見つける方法を知っていますか?
ベストアンサー1
いくつかの可能性があります(いくつかは他の答えで言及されています)。
- 頻繁に実行されるシステムまたはユーザーcronjob、
- SysV initでディレクティブを含む
/etc/inittab
サービスエントリrespawn
、 - systemdではユニットファイル
Restart
オプションがno
、 - Upstartでは、ディレクティブを含むサービス構成ファイル
respawn
、 - プロセス監視ツール(例:
monit
または - これは特定のサービスの一時的な監視プロセスです。
興味深い新しいツール(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へのフロントエンドのみです)。