GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - Journal des threads passés qui sont maintenant fermés ?

Parfois, j'ai un processus Java malveillant qui occupe 100 % de mon processeur et le fait sauter d'environ 30 °C en température (entraînant généralement un plantage s'il n'est pas tué).

Le problème est que je ne peux jamais vraiment l'identifier (il a une longue liste de paramètres et d'autres choses) ou l'analyser parce que je dois le tuer si rapidement.

Existe-t-il une sorte de journal que je peux consulter pour voir l'identité des processus passés que j'ai tués? Si ce n'est pas le cas, y a-t-il un moyen pour moi d'attraper ce processus la prochaine fois qu'il s'affichera ?

Si c'est important, je suis OpenSuse 11.4.

Réponse acceptée :

Non, pas par défaut. Il y a trop de journalisation (surtout lorsque vous commencez à risquer de journaliser l'action d'écrire une entrée de journal…).

Comptabilisation des processus BSD (si vous l'avez, exécutez lastcomm ), s'il est actif, enregistre le nom de chaque commande exécutée et quelques statistiques de base, mais pas les arguments.

Le sous-système d'audit est plus général et plus souple. Installez l'audit package et lisez le guide d'audit SuSE (principalement la partie sur les règles), ou essayez

auditctl -A exit,always -F path=/usr/bin/java -S execve

Ou :au lieu de le tuer, kill -STOP ce. Le STOP suspend le processus, sans poser de questions. Vous avez la possibilité de reprendre (kill -CONT ) ou terminer (kill -KILL ) plus tard. Tant que le processus est toujours là, vous pouvez inspecter sa ligne de commande (/proc/12345/cmdline ), sa carte mémoire (/proc/12345/maps ) et ainsi de suite.

Ou :attachez un débogueur au processus et mettez-le en pause. C'est aussi simple que gdb --pid 12345 (il peut y avoir de meilleures options pour un processus Java); attacher un débogueur met immédiatement le processus en pause (si vous quittez le débogueur, le processus reçoit un SIGCONT et reprend).

Notez que tout cela n'intercepte que les processus au niveau du système d'exploitation, pas les threads JVM. Vous devez vous tourner vers les fonctionnalités JVM pour déboguer les threads.


Linux
  1. Linux - Quand ne devrais-je pas tuer -9 Un processus ?

  2. Comment tuer un processus sous Linux en utilisant la commande ?

  3. Introduction aux threads Linux – Partie I

  4. Que sont les processus Linux, les threads, les processus légers et l'état du processus

  5. Comment arrêter manuellement un script Python qui s'exécute en continu sous Linux

Comment tuer un processus sous Linux ? Commandes pour terminer

Comment tuer un processus sous Linux

Commande Kill sous Linux

Comment tuer les processus Zombie sous Linux

5 façons rapides de tuer un processus sous Linux

Comment tuer un processus sous Linux