Linux Series: Dites - lui qu'il ne connaît pas kill du tout

Flydean 2021-09-15 09:29:52
linux series dites lui qu


Introduction

Avec beaucoup de programmeurs,Ces programmeurs sont probablement familiersforPlusieurs 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à.tomcatComment ça marche?.Pour eux,Exécuter unjarLe 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.killC'est un collègue qui lui a donné l'ordre.,Mettre le processuskillLaisse tomber..AlorskillC'est vraiment pour tuer le processus??

UtiliserkillPour 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 processusID.

Généralement utilisépsLa commande trouve ce processusID.Rejoignez ce processusID=54321.

Ensuite, vous pouvez utiliserkill 54321Pour tuer ce processus..

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

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

killUtilisation approfondie de

Regardez d'abordkillQuels 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 - à - direkillL'essence est de transmettre des signaux au programme.

Si vous utilisez kill -l ,On peut l'avoir jusqu'au bout.killCombien 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?killEt 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 utiliserSIGTERMSignal.C'est parce que lorsque le programme reçoitSIGTERMAprè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..

sigIl y a aussi une valeur spéciale appelée0,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 actuelgroupTous les processus
  • -1 Représente toutPID>1Processus

Et un spécialpid=1,C'estpidReprésente le processus initialinit,Ce processus ne doit pas être tué..

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

Processus zombies etkill

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

Le processus zombie estlinuxUn é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..

linuxDans5L'é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 etZOMBIE: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 a0- Oui.zombie.

java thread dump

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

Pourquoi?javaProcessusthread dumpEt alors??Facile à utiliserkill -3 Commande juste:

kill -3 <pid>

À partir de ce qui précède, nous pouvons spécifier3Le signal représenté estSIGQUIT.Ça montreJVMLa capture de ce signal est intégrée,Si ce signal est reçu,Oui.dumpInformations actuelles sur le thread.

java thread dumpÀ droitejavaUtile pour l'analyse des fils.

Résumé

Cet article présentekillUtilisation approfondie et principe de fonctionnement sous - jacent,A également présentékillPlusieurs applications,J'espère que quelqu'un te le redemandera.killC'é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.!

版权声明
本文为[Flydean]所创,转载请带上原文链接,感谢
https://javamana.com/2021/09/20210915091722192L.html

  1. The first starcoin & move hacksong source code analysis - P (a)
  2. Zhaijia 36 days Salt Fish turn into Tencent, Zookeeper Consistency level analysis,
  3. Traitement de l'interception des champs de demande communs de Spring Cloud, plus de 500 personnes interviewent Ali,
  4. About JavaScript modules
  5. Object oriented programming (2)
  6. Java日期时间API系列42-----一种高效的中文日期格式化和解析方法
  7. Java日期時間API系列42-----一種高效的中文日期格式化和解析方法
  8. 宅家36天鹹魚翻身入職騰訊,Zookeeper一致性級別分析,
  9. Java Date Time API Series 42 - - a efficient Chinese Date Format and Analysis Method
  10. 已成功拿下字节、腾讯、脉脉offer,7年老Java一次操蛋的面试经历,
  11. 小米Java社招面试,每次面试必问的二叉树的设计与编码,
  12. 小米Java校招面试,阿里、百度、美团、携程、蚂蚁面经分享,
  13. 小米Java校招面試,阿裏、百度、美團、攜程、螞蟻面經分享,
  14. Xiaomi Java School Recruitment interview, Ali, baidu, meituan, ctrip, ant Facebook Sharing,
  15. La conception et le codage de l'arbre binaire requis pour chaque entrevue d'embauche de la société Java millet;
  16. A remporté avec succès Byte, Tencent, Pulse offer, 7 ans Java une expérience d'entrevue de baise,
  17. 干货来袭,Java岗面试12家大厂成功跳槽,
  18. 常用Java框架面试题目,现在做Java开发有前途吗?
  19. 常用Java框架面試題目,現在做Java開發有前途嗎?
  20. Les questions d'entrevue couramment utilisées pour le cadre Java sont - elles prometteuses pour le développement Java?
  21. L'arrivée de marchandises sèches, l'entretien d'emploi Java 12 grandes usines ont réussi à changer d'emploi,
  22. Multiple postures for handling container time in k8s environment
  23. Echarts remove left Gap, Blank
  24. Hotspot Weekly | zoom $100 million, docker fees, $38 billion Data bricks
  25. JsonMappingException: No serializer found for class org.apache.ibatis.executor.loader.javassist.JavassistProxyFactory...
  26. Java. Security. Securerandom source code analysis Java. Security. EGD = file: / dev /. / urandom
  27. When using IntelliJ idea, jump directly and quickly from the mapper interface to mapper.xml
  28. When idea writes SQL in mybatis XML, the solution to the problems of table name, field and red reporting
  29. Spring cloud integrates Nacos
  30. 应届毕业生Java笔试题目,2021大厂Java社招最全面试题,
  31. Liver explosion! Take you to understand Hadoop serialization
  32. linux系列之:告诉他,他根本不懂kill
  33. java版gRPC实战之三:服务端流
  34. RabbitMQ核心知识总结!
  35. linux系列之:告诉他,他根本不懂kill
  36. java版gRPC实战之三:服务端流
  37. RabbitMQ核心知识总结!
  38. 10天拿到字节跳动Java岗位offer,学习Java开发的步骤
  39. 10天拿到字节跳动Java岗位offer,Java知识点思维导图
  40. Résumé des connaissances de base de rabbitmq!
  41. 10天拿到字節跳動Java崗比特offer,Java知識點思維導圖
  42. 10 jours pour obtenir un Byte Jump Java post offer, Java Knowledge point Mind Map
  43. 10 jours pour obtenir l'octet Jump Java post offer, apprendre les étapes du développement Java
  44. Java version of gppc Reality Three: server side stream
  45. Linux Series: Dites - lui qu'il ne connaît pas kill du tout
  46. "Data structure and algorithm" of front end -- binary search
  47. 2020-2021京东Java面试真题解析,如何才能通过一线互联网公司面试
  48. 13 SpringBoot整合RocketMQ实现过滤消息-根据SQL表达式过滤消息
  49. 12 SpringBoot整合RocketMQ实现过滤消息-根据TAG方式过滤消息
  50. 11 SpringBoot整合RocketMQ实现事务消息
  51. 11 springboot Consolidated rocketmq Implementation transaction message
  52. 12 springboot Consolidated rocketmq Implements Filtering messages - Filtering messages according to tag method
  53. 13 springboot Consolidated rocketmq Implementation Filtering messages - Filtering messages according to SQL expressions
  54. linux系列之:告诉他,他根本不懂kill
  55. (1)java Spring Cloud+Spring boot企业快速开发架构之微服务是什么?它的优缺点有哪些?
  56. Oracle 检查 DATE 列 RANGE 分区表已有分区的最大日期时间
  57. ConcurrentHashMap--原理
  58. 2020 - 2021 JD Java interview Real question Analysis, How can interview through First - Line Internet Company
  59. Concurrenthashmap - - Principes
  60. Oracle vérifie l'heure de date maximale d'une partition existante dans la colonne date