Introduction

Avec beaucoup de programmeurs , Ces programmeurs sont probablement familiers for Plusieurs façons de traverser ,Mais ne sait rien de l'environnement dans lequel le programme écrit est déployé.J'en suis sûr.,Inspring bootAprès l'apparition, Peu de programmeurs le savent déjà. tomcat Comment ça marche? .Pour eux,Exécuter unjar Le sac est fini. .

La sophistication des outils nous apporte beaucoup de commodité, Améliore également l'efficacité du développement des programmeurs ,Il abaisse également le seuil d'entrée des programmeurs. J'aimerais en discuter avec vous aujourd'hui. ,linuxDanskill À quoi servent exactement les ordres? .

Peut - être qu'il y a beaucoup de petits partenaires qui entrent en contact pour la première fois. kill C'est un collègue qui lui a donné l'ordre. ,Mettre le processuskillLaisse tomber..Alorskill C'est vraiment pour tuer le processus? ?

Utiliserkill Pour tuer le processus

Voyons d'abord.killBasic,Et l'application la plus courante est de tuer le processus. Avant de tuer le processus , Nous devons trouver ce processus ID.

Généralement utilisé ps La commande trouve ce processus ID. Rejoignez ce processus ID=54321.

Ensuite, vous pouvez utiliser kill 54321 Pour tuer ce processus. .

Un étudiant plus âgé , Peut également être utilisé kill -9 54321 Pour forcer le processus à tuer .

Y a - t - il une utilisation plus approfondie ?Oui.,Venez voir.

kill Utilisation approfondie de

Regardez d'abordkill Quels sont les paramètres de commande pour :

kill
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]

Je vois.killLe paramètre pour estsig, C'est le signal. .C'est - à - direkill L'essence est de transmettre des signaux au programme .

Si vous utilisez kill -l , On peut l'avoir jusqu'au bout. kill Combien de signaux peuvent être transmis :

kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX

Total64Un signal,Ça pourrait être différent.killVersion, Le signal est différent. ,Mais en gros, ils couvrent tous les signaux habituels.

Voici la signification de certains signaux communs :

HUP 1 Déconnexion du terminal 
INT 2 Interruption(Même chose. Ctrl + C)
QUIT 3 Sortie(Même chose. Ctrl + \)
TERM 15 Résiliation
KILL 9 Résiliation forcée
CONT 18 Continue.(AvecSTOPAu contraire., fg/bgLes ordres)
STOP 19 Pause(Même chose. Ctrl + Z)

Qu'en penses - tu?kill Et la version de ?

/bin/kill --version
kill from util-linux 2.23.2

SikillNon.sig, Il passera par défaut. sig=TERM,C'est - à - dire15.Donc, au - dessuskill 54321Et kill -15 54321Est équivalent.

En général, Nous préférons utiliser SIGTERMSignal. C'est parce que lorsque le programme reçoit SIGTERM Après le signal , Il y a des procédures de nettoyage , Ou une fermeture élégante .

Sikill -9 C'est - à - direSIGKILL,L'application ne pourra pas capter ce signal, Cela entraîne la fermeture forcée du programme , Il y a des chances qu'il y ait des anomalies. , Par exemple, les données n'ont pas été sauvegardées , Le transfert de données n'est pas terminé, etc. .

sig Il y a aussi une valeur spéciale appelée 0,Si0Et si, Il n'y aura pas de signal réel. , C'est juste pour la détection des anomalies. .

pidC'estprocess id, Peut être interprété comme un numéro de processus . En plus du numéro de processus , Vous pouvez également passer des valeurs spéciales ,Par exemple,:

  • 0 Représente le processus actuel groupTous les processus
  • -1 Représente toutPID>1Processus

Et un spécial pid=1,C'estpid Représente le processus initial init, Ce processus ne doit pas être tué. .

Sauf quePIDAu - delà,Nous avons vukillC'est acceptable.jobspec.job idPeut être utiliséjobs Commandes pour lister .

Processus zombies et kill

C'est comme ça quepid=1 Le processus initial de killDe. Il y a un autre type qui ne peut pas être kill Le processus est appelé processus zombie .

Le processus zombie est linux Un état très unique dans le programme , Ça veut dire que le processus est terminé. , Mais il n'est pas encore mort. , Comme un zombie. .

linuxDans5 L'état du grand processus est :RUNNING: En cours d'exécution ou en attente d'exécution ,UNINTERRUPTABLE: État de blocage non interruptible ,INTERRUPTABLE: État de blocage interruptible ,STOPPED: État en attente et ZOMBIE: Statut zombie .

Qu'est - ce qu'un processus zombie? ?

Le processus zombie fait référence au programme après la sortie, Le processus n'a pas disparu immédiatement. ,Au lieu de cela, une structure de données appelée zombie serait conservée. Cette structure de données est unique , Parce qu'il n'a pas d'espace mémoire , Pas de code exécutable , Bien sûr que non. .C'est juste une place dans la liste des processus,Diverses informations ont été enregistrées à la sortie du processus.

Le processus zombie est principalement le site où le processus de rétention quitte,Utilisé par le processus parent ou l'Administrateur du système pour l'analyse,Donc le processus zombie est laissé au processus parent pour la collecte et la libération. Parce que le processus zombie est sorti ,Alors utilisezkillÇa ne sert à rien, Vous ne pouvez attendre que la sortie de son processus parent , Pour vraiment sortir .

Comment voir le processus zombie ?La façon la plus simple est d'utilisertopLes ordres:

top - 14:34:38 up 305 days, 4:23, 2 users, load average: 0.20, 0.29, 0.47
Tasks: 93 total, 1 running, 92 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.0 us, 0.7 sy, 0.0 ni, 97.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1882008 total, 525524 free, 311440 used, 1045044 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 1382560 avail Mem

Sortie ci - dessus , Nous pouvons voir qu'il y a 0- Oui.zombie.

java thread dump

killIl y a aussi un endroit très utile pour générerjavaLa procédurethread dump,Va maintenantjava Informations sur le thread du programme dumpSors de là., Peut faire des analyses utiles , Comme l'analyse des impasses, etc. .

Pourquoi?java Processus thread dumpEt alors??Facile à utiliserkill -3 Commande juste:

kill -3 <pid>

À partir de ce qui précède, nous pouvons spécifier 3 Le signal représenté est SIGQUIT.Ça montreJVM La capture de ce signal est intégrée , Si ce signal est reçu ,Oui.dump Informations actuelles sur le thread .

java thread dumpÀ droitejava Utile pour l'analyse des fils .

Résumé

Cet article présentekill Utilisation approfondie et principe de fonctionnement sous - jacent , A également présenté kill Plusieurs applications , J'espère que quelqu'un te le redemandera. kill C'était quand? , Tout le monde peut être fier de lui dire !

Cet article a été inclus dans http://www.flydean.com/01-that-is-kill/

L'interprétation la plus populaire,Les plus profondes marchandises sèches,Le tutoriel le plus concis,Beaucoup de petits trucs que vous ne connaissez pas vous attendent pour découvrir!

Bienvenue à mon numéro public:「La procédure.」,Comprendre la technologie,Je te connais mieux.!

linuxSérie:Dis - lui., Il ne comprend pas. killAutre article Afghanistan

  1. [Linux] PHP Le programmeur joue LinuxSérie-Restauration de sauvegardeMySQL

    1.PHP Le programmeur joue LinuxSérie- Comment installer et utiliser CentOS 2.PHP Le programmeur joue LinuxSérie-lnmpConstruction de l'environnement 3.PHP Le programmeur joue LinuxSérie-ConstructionFTP Environnement de développement de code Il y a eu une nouvelle l'autre jour. ,Dis oui.g ...

  2. LinuxSérie(17) Services du système

    Nous savons que, Quand nous atterrissons LinuxAprès, Le système nous fournit beaucoup de services , Comme le service régulier d'ordonnancement des tâches crond. Services d'impression . Services de courrier, etc. .Comment ces services ont - ils été lancés?? Laissez tomber cette question. , Maintenant, regardons. Linux L'illumination ...

  3. Suivez Bird Brother. Linux Notes de série 3-No11ChapitreBASHApprendre

    Suivez Bird Brother. Linux Notes de série 0- Le concept d'alphabétisation Suivez Bird Brother. Linux Notes de série 0-Comment résoudre le problème Suivez Bird Brother. Linux Notes de série 1 Suivez Bird Brother. Linux Notes de série 2-No10ChapitreVIMApprendre Connaissance et apprentissagebash 1. ...

  4. Suivez Bird Brother. Linux Notes de série 2-No10ChapitreVIMApprendre

    Suivez Bird Brother. Linux Notes de série 0- Le concept d'alphabétisation Suivez Bird Brother. Linux Notes de série 0-Comment résoudre le problème Suivez Bird Brother. Linux Notes de série 1 Éditeur de texte commun :Emacs, pico, nano, joe, vim VI ...

  5. Suivez Bird Brother. Linux Notes de série 0-Comment résoudre le problème

    Suivez Bird Brother. Linux Notes de série 0- Le concept d'alphabétisation Que faire en cas de problème? : 1.   Sur son propre hôte . Requête sur la base de données réseau How-ToOuFAQ -Linux Données propres au fichier : /usr/share/doc -CLDPMoyenne ...

  6. Suivez Bird Brother. Linux Notes de série 1

    Suivez Bird Brother. Linux Notes de série 0- Le concept d'alphabétisation Suivez Bird Brother. Linux Notes de série 0-Comment résoudre le problème Chargez.linuxAprès,L'étape suivante consiste à apprendre les commandes pertinentes Chapitre V: Première connexion et aide en ligne man page 1. X ...

  7. ApprendreLinuxSérie--InstallationUbuntu

    Études récentesLinux, L'utilisation de la machine virtuelle est trop gênante ,J'ai donc acheté la machine virtuelle la moins chère d'Alibaba Cloud comme équipement d'apprentissage. Cette série d'articles documente le processus d'apprentissage individuel. ApprendreLinuxSérie--InstallationUbuntu ApprendreLinuxSérie-- Installer un anneau logiciel ...

  8. kali linux Série de tutorielsmetasploit Connexionpostgresql Problèmes possibles

    kali linux Série de tutorielsmetasploit Connexionpostgresql Problèmes possibles Texte/Xuan Soul   Table des matières kali linux En bas.metasploit Connexionpostgresql Problèmes possibles . ...

  9. kali LinuxSérie de tutorielsBeFF Installation et intégration Metasploit

    kali LinuxSérie de tutorielsBeFF Installation et intégration Metasploit Texte/Xuan Soul kali LinuxSérie de tutorielsBeFF Installation et intégration Metasploit 1.1 apt-getMode d'installation 1.2 Démarrage 1. ...

  10. kali linux Lancement de la série vpn

    kali linux Lancement de la série vpn Texte/Xuan Soul Par défaut,kali linuxDevpnLes options ne sont pas disponibles. Voici l'installationopenvpnMéthode,La même chose., D'autres types peuvent être installés vpn. Ouvrir la commande d'entrée du terminal : Apt ...

Recommandation aléatoire

  1. [LeetCode] Ugly Number Nombre laid

    Write a program to check whether a given number is an ugly number. Ugly numbers are positive numbers ...

  2. JVM Analyse schématique de la disposition du tas de mémoire

    JAVAUne des raisons fondamentales pour lesquelles il est possible de réaliser des plateformes croisées, C'est la définition. class Normes de formatage des fichiers , Lorsque la norme est respectée JVM Est capable de charger et d'expliquer classDocumentation, C'est ce que vous savez. ,PourquoiJava Taux d'exécution de la langue C/C++ L'exécution de la langue est lente ...

  3. NVLFonctions(NVL,NVL2,NULLIF,COALESCE)

    NVL Syntaxe:NVL( expr1, expr2) Fonction:Siexpr1PourNULL,EtNVLRetour de la fonctionexpr2Valeur de,Sinon, retournez àexpr1Valeur de, Si les deux paramètres sont NULL ,RenvoieNULL. Notes:e ...

  4. angularjsApplicationprerender.io Pratiques d'optimisation des moteurs de recherche

    Dernier billet de blog(http://www.cnblogs.com/ideal-lx/p/5625428.html)Le principe du référencement d'une page est introduit,Et décrit les avantages et les inconvénients de deux cadres open source.prerender Comment fonctionne le cadre ...

  5. JDBC(Un.)

    JDBC(Java DataBase Conectivity)JavaConnexion à la base de données,- Oui.J2SEUne partie de,Parjava.sqlEtjavax.sqlComposition. package dbTest; import jav ...

  6. c/c++ linux Série de communications inter - processus 5, Utiliser un sémaphore

    linux Série de communications inter - processus 5, Utiliser un sémaphore Principe de fonctionnement du sémaphore : Comme le sémaphore ne peut effectuer que deux opérations d'attente et de signalisation,C'est - à - dire:P(sv)EtV(sv), C'est ce qu'ils font. : P(sv):Sisv La valeur de est supérieure à zéro , Donne - le moins. 1:Si ...

  7. J'ai dû voir, Seuls les experts le savent. 17- Oui.SQL Demander des conseils pour augmenter la vitesse !

    J'ai dû voir, Seuls les experts le savent. 17- Oui.SQL Demander des conseils pour augmenter la vitesse ! Original 2018-01-23  Compilé par Bugatti  51CTOPile technologique “ À moins que vous ne suiviez ces techniques décrites dans cet article ,Sinon, il est facile d'écrire le Code de base de données qui ralentit la requête ou verrouille la base de données. ...

  8. Procédure du projet d'ingénierie logicielle :WC

    1:Source du Code:http://yuncode.net/code/c_5087c8e4cd77190 2:Platform:Eclipse Language:Java 3:Bug:Pas encore. 4. Func ...

  9. angular5 Instructions personnalisées I / o @Input @Output( Clic droit transfert d'événements )

    Rédaction de la directive,angular5 Les documents officiels sont très détaillés . Vous devez d'abord créer un fichier , Attention à la nomenclature (Suffixe namexxx.directive.ts): Aujourd'hui, il y a plus d'un liMoyenne,Cliquez avec le bouton droit pour afficher le menu correspondant, Allez - y. ! ...

  10. SpringMoyenne,UtiliserJava Injection dépendante configurée

    Précédemment utiliséspringQuand, Ne sait utiliser que xmlDe la façon dont, Et comment utiliser les annotations , Mais je ne savais pas springMoyenne,Peut également être utiliséJava Configuration de la classe .UtiliserJavaMode de classe, Peut remplacer xmlEt les notes.UtiliserJavaLa configuration estS ...