Programmeur Résumé: L'analyse des six méthodes processus Linux, je vous le dis tout

Source  | école de technologie de back - end

Photo de couverture | RPSC télécharger la Chine visuelle

« Processus » du système d' exploitation est le concept de base de la science informatique doivent communiquer avec le système d'exploitation de côté les bas purement théorique la mise en œuvre de la couche, en faisant le développement de logiciels sous Linux depuis tant d'années, chaque fois que le programme des problèmes en cours d' exécution, nous devons l' étape par l' analyse de l' étape de chaque processus états, pour résoudre les où le problème est, ce citron avec vous dans une opération pratique de l' environnement Linux, étape par étape pour explorer les secrets Uncover « processus Linux » de.

Quel est le processus

Tout d'abord, nous disons que sous le concept de « programme », le programme est une collection ordonnée d'instructions stockées sur un disque, est statique. Le processus est un processus d'exécution du programme, y compris la création dynamique, la planification et la disparition de l'ensemble du processus, il est la plus petite unité de programme de gestion des ressources.

Un fil est la plus petite unité de fonctionnement du système d'exploitation peut prévoir calcul. Dans la majorité des cas, il est inclus dans le processus, le fonctionnement réel du processus d'unité, un processus peut contenir plusieurs threads, est la plus petite unité de planification des ressources. [QUOTE Wikipedia]

modèle de programmation multi-thread

La première étape dans le processus d'enquête, êtes-vous là? D'accord?

  • ps

signaler un aperçu des processus actuels. listes aperçu des processus système en cours.

Trouver le processus PID (Process identité), PID identifie de manière unique un processus. Ps utiliser cette commande, que nous devrions tous savoir, pour les utilisateurs blancs, d'abord il n'est pas Photoshop.

Donnez-vous une brève introduction, l'utilisation générale figure dans le système d'information souvent ps -ef, généralement un processus tuyau de grep d'intérêt comme ps -ef | grep intresting première colonne représente le processus ID PID, PPID (parent ID de processus) au nom de l'ID du processus parent.

La deuxième étape pour explorer le processus, laissez-moi voir ce que vous devez payer un ami (appel système et signal)

  • strace

Système d'appel et les appels système trace de signal et les signaux à l'intérieur du processus de suivi de piste.

Qu'est-ce qu'un « appel système »? L'appel système (appel système), fait référence fonctionne dans les services « mode utilisateur » demandes de programme au « mode noyau » système d'exploitation nécessitent des privilèges plus élevés pour exécuter, le système appelle le programme fournit une interface entre l'utilisateur et le système d'exploitation.

Strace suivi derrière pour commencer un processus qui peut tracer les appels système et signale le début du processus, cette commande peut voir le processus exécuté quand ils sont appelés appels système qui peut le temps de sortie de l'appel système se produit par une autre option est spécifiée, la précision peut être précis à microsecondes, et même système d'analyse statistique « chronophage appel », qui dans le processus d'enquête en suspension des problèmes d'animation, lorsque cela est utile, le processus de découverte peut vous aider à carte sur laquelle l'appel système. Vous pouvez également spécifier le paramètre -p a été procédé en cours d'exécution comme gdb attacher pid Additionnez la piste en pièce jointe.

statistiques strace

La troisième étape consiste à explorer le processus, laissez-moi voir votre petit frère avec le (fil).

  • pstack

imprimer une trace de pile d'un processus en cours d'exécution pour imprimer des informations sur la pile de programme en cours d'exécution.

Exécuter pstack pid vous pouvez voir la trace de la pile du fonctionnement courant de fil, avant que la commande pid ps peut être utilisé pour obtenir, pstack peut voir le numéro de fil commence dans les processus, chaque contenu « pile » peut également être vu dans le fil à.

Voir imprimé au-dessus LWP encore, ici le point de savoir, signifie LPW processus Léger fils légers. Connaissance approfondie:

  1. Linux est pas un vrai fil

  2. Linux ne fil fil est atteint par un procédé pour simuler ce qu'on appelle: processus légers

  3. Processus est la plus petite unité « gestion des ressources », le fil est « la planification des ressources, » la plus petite unité (non considéré ici coroutines)

Le processus quatrième étape pour explorer, si petit frère (fil) a classé les équipes en sortir.

  • pstree

afficher un arbre de processus d'information de pstree dans une structure arborescente de l'opération d'impression Structure de processus

Vous pouvez voir la relation entre le processus intuitif et il commence un fil, et peut afficher l'ID de processus.

pstree

Le cinquième processus d'enquête étape est mort (arrêt de processus) est en vie (processus en cours d'exécution) Je dois connaître votre secret (cadre de pile et contexte).

  • gdb

gdb est le paquet GNU gcc développé sous l'outil de débogage Linux, vous pouvez voir la pile de programme, ensemble des points d'arrêt, des informations d'exécution d'impression, et même débogage des programmes multithread, il est très puissant.

Ici, le gdb comme un peu exagéré en termes de commande, gdb aux détails, vous pouvez contenir jusqu'à une longueur de l'article, longue histoire courte ici, ont la possibilité de l'ouvrir prochain article en détail.

  • utilisation

Utilisez gdb débogage C / C ++ lorsque le programme premier à ajouter l'option -g, g ++ -g test.cpp programme de test -o généré de cette manière peut être utilisé gdb pour déboguer.

  1. Peut débogage directement avec gdb démarrer le programme, la commande: gdb prog

  2. En utilisant gdb attaché à un processus de débogage déjà commencé peut être. Commande: gdb prog pid

  3. Une fois le programme se bloque paramètres corefile peut également utiliser le débogage GDB, regardez à gauche les derniers mots (information de la pile) au programme avant de mourir. Commande: gdb prog corefile, il y a une chose à noter qu'un système Linux ne génère pas de programme se bloque par défaut corefile, alors vous devez ulimit -c unlimited Cela va générer un fichier core.

Explorer le processus sixième étape, de vous tous, je veux savoir.

Un pas de plus

Via fichier / proc / pid pour les processus en cours d'exécution lorsque l'information et de statistiques. / Proc système de fichiers est un pseudo-système existe uniquement entre la mémoire, de la mémoire externe sans prendre de place dans le mode noyau du système de fichiers et le processus consistant à fournir une interface de communication. Le répertoire système / proc:

proc

/ Il y a beaucoup de répertoire numérique nommé proc, chaque numéro représente un processus qui est le répertoire numéro processus de PID. Lorsque le système est en cours d'exécution dans chaque processus sous / proc correspond à un numéro de processus comme le nom du répertoire du répertoire / proc / pid, ils traitent l'information est l'interface de lecture, nous pouvons entrer dans ce fichier à l'intérieur connaissance du fonctionnement du processus informations et statistiques.

  • utilisation à haute fréquence

/ Proc il y a des fichiers importants / répertoire sous pid, choisissez un peu souvent utilisé pour parler. Liste / proc / pid / environ contient le processus des variables d'environnement. Programmer un problème si vous ne savez pas si les paramètres variables de l'environnement prennent effet, vous pouvez voir le chat du fichier pour confirmer.

/ Proc / pid / fd / répertoire contient des liens vers tous ouverts de fichiers pour le processus. A partir de là, vous pouvez voir le processus d'information des descripteurs de fichiers ouverts, y compris l'entrée standard, la sortie, les flux d'erreur, le processus de connexion des descripteurs de fichiers ouverts peut être vu, lsof a un effet similaire.

/ Proc / pid / stat contient traiter toutes ID informations d'état, l'identificateur de processus, processus parent, le numéro de groupe de fils, la tâche en mode de temps de mode d'emploi, le travail avec le temps de fonctionnement en mode noyau, le segment de code d'espace d'adressage virtuel , des signaux d'information bitmap comme tout blocage.

  • D'autres statistiques

commande / proc / pid / cmdline complet Ce fichier contient la ligne de processus
/ proc / pid / CWD un lien symbolique, pointant vers le processus du répertoire de travail en cours
/ proc / pid / exe contient le programme relie les processus exécutés dans
/ proc / pid / mem contient le contenu du processus en mémoire
/ proc / pid / statm contient des informations d'utilisation de mémoire de processus

En résumé

Eh bien, l'opération vers le bas repas, vous processus secret et vous avez été très compréhensif, notre bon ami le prochain « processus » si vous rencontrez des problèmes (coredump accident, animation suspendue, le blocage, le système appelle un délai d'attente, la description du fichier Fu anormale), vous devez savoir comment l'aider à y faire face! Le Résumer Let:

  • ps voir le numéro de processus, jetez un oeil sur le processus et le processus est toujours pas dans l'état

  • Si le strace de cas, regard psstack à l'information en cours de processus, qui n'est pas bloqué en position, en comparant chaque image des dernières informations d'appel pour trouver des valeurs aberrantes

  • Si le processus n'est plus, s'il y a des fichiers corefile Voir directement les informations sur corefile gdb

  • D'autres maladies incurables soupçonnaient des informations d'état de processus que nous examinons / proc / pid suivant les informations d'état de processus peut vous donner de l'inspiration.

  • Enfin, si tout le reste échoue, nous nous tournons une prière oeil aveugle!

Écrit dans la dernière

La part d'aujourd'hui veulent vous aider, je souhaite que vous avez écrit le service jamais, jamais coredump, nous allons vous apprendre à manger grisonner opération ci - dessus. Merci chaque bit de lecture. Chef de l'article est de partager la compréhension des connaissances, des articles techniques de tous seront répétées confirmation afin d'assurer une précision maximale, si des défauts évidents apparaissent dans le texte est également bienvenu que , ensemble , nous apprenons exploré.

En même temps, ouvert à tous les développeurs sous le remplissage de balayage de code Fanger Wei les « grands développeurs et AI recherche », à seulement 2 minutes, vous pouvez récolter la valeur de 299 yuans, « développeurs AI millions de personnes congrès » en direct des billets en ligne!

推荐阅读:“出道” 5 年采用率达 78%,Kubernetes 的成功秘诀是什么?
一群阿里人如何用 10 年自研洛神云网络平台?技术架构演进全揭秘!
一文告诉你,如何在 Kubernetes 的容器引擎中运行 KVM 和 VMware VM!半小时训练亿级规模知识图谱,亚马逊AI开源知识图谱嵌入表示框架DGL-KE马化腾、马云并列成为中国首富;百度回应“将上线电商直播”;.NET 5 Preview 2 发布 | 极客头条程序员职场背锅甩锅指南警惕!新骗术出现:这些虚假二维码生成器已成功盗取 4.6 万美元!真香,朕在看了!
Publié 303 articles originaux · éloge de won 1288 · Vues 1,41 millions +

Je suppose que tu aimes

Origine blog.csdn.net/FL63Zv9Zou86950w/article/details/105383294
conseillé
Classement