成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux如何找到發出 kill -9 信號的真兇?

系統 Linux
生產環境遇到一個神奇的問題,某個進程運行一段時間后,就莫名其妙地被干掉了。初步懷疑是被操作系統OOM killer干掉的,但查看了dmesg日志以及系統內存監控數據,發現內存充足也沒有達到cgroup限制,排除了操作系統OMM killer干的。

 

生產環境遇到一個神奇的問題,某個進程運行一段時間后,就莫名其妙地被干掉了。初步懷疑是被操作系統OOM killer干掉的,但查看了dmesg日志以及系統內存監控數據,發現內存充足也沒有達到cgroup限制,排除了操作系統OMM killer干的。

應該是被其他進程干掉了,但系統里面進程這么多,怎么知道是哪個進程發出的kill信號呢?我們知道,sigkill(kill -9)是無法屏蔽并且不允許注冊handler的。

今天給大家介紹一個神器bpftrace,之前介紹BPF入門的文章里面已經介紹了通過bpf攔截sys_clone系統調用了。原理類似,我們可以通過bpftrace攔截kill系統調用,從而找出殺死進程的罪魁禍首。

腳本非常簡單,如下所示,主要就是在進入系統調用sys_enter_kill注冊 以及 結束系統調用sys_exit_kill的時候獲取并打印發出信號的pid和信號編號。

  1. BEGIN 
  2.     printf("Tracing kill() signals... Hit Ctrl-C to end.\n"); 
  3.     printf("%-9s %-6s %-16s %-4s %-6s %s\n""TIME""PID""COMM""SIG"
  4.         "TPID""RESULT"); 
  5.  
  6. tracepoint:syscalls:sys_enter_kill 
  7.     @tpid[tid] = args->pid; 
  8.     @tsig[tid] = args->sig; 
  9.  
  10. tracepoint:syscalls:sys_exit_kill 
  11. /@tpid[tid]/ 
  12.     time("%H:%M:%S  "); 
  13.     printf("%-6d %-16s %-4d %-6d %d\n", pid, comm, @tsig[tid], @tpid[tid], 
  14.         args->ret); 
  15.     delete(@tpid[tid]); 
  16.     delete(@tsig[tid]); 

我們可以先啟動一個sleep的Demo測試

  1. # sleep 444 

執行上面的腳本后,通過 ”kill -9 “殺死上面啟動sleep 任務,可以腳本輸出如下:

  1. TIME      PID    COMM             SIG  TPID   RESULT 
  2. 11:38:43  2837583 bash             9    2837548 0 

其中,TIME代表執行時間,PID代表發出信號的進程ID,COMM代表發出信號進程命令行,由于是在bash環境中執行的kill -9 所以這里顯示bash,SIG代表信號編號,本例中是kill -9 信號,TPID是sleep任務的線程ID,RESULT代表執行結果,0代表成功。”殺手“和”受害者“都已經成功顯示。

最終通過上面的腳本找到了系統上面一個自動清理程序,由于使用了通配符導致誤殺的情況。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2015-02-06 10:29:22

2022-04-14 11:17:41

MySQL字符配置

2013-12-03 09:12:37

Linux命令kill命令

2014-06-10 10:47:37

2019-10-11 08:00:00

Linux命令最大文件

2016-08-16 08:26:19

Linuxsignalsigaction

2018-07-04 09:44:36

mysql10億alter

2021-05-25 09:30:44

kill -9Linux kill -9 pid

2011-08-12 14:53:56

kill中文man

2023-01-05 16:02:40

Linux揚聲器

2018-05-28 11:10:08

Linux命令IP地址

2022-11-17 00:04:38

接口性能查詢

2009-10-20 09:19:11

Linux kill命

2021-10-25 12:23:06

Linux僵尸進程

2021-02-03 10:43:54

Linux系統磁盤

2023-05-25 18:02:47

KVMLinux命令

2012-01-18 10:53:08

iOS小游戲

2010-06-07 12:51:51

Linux 查看進程

2018-04-27 14:58:09

Linuxkill命令

2010-09-07 13:35:06

無線網絡干擾
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级一片在线观看 | 9191在线播放 | 国产精品久久久久久久久久久久冷 | 久久精品91久久久久久再现 | 欧美精品一区二区三区四区五区 | 免费在线观看一区二区三区 | 欧美日韩黄色一级片 | 欧美一区二区三区视频 | 亚洲精品www | 国内精品久久久久 | 日韩视频一区二区三区 | 久久久久久国 | 亚洲欧美综合 | 欧美日韩1区2区3区 欧美久久一区 | 午夜免费 | 日本超碰 | 欧美性a视频| 日韩精品视频在线免费观看 | 国产一区2区 | 在线观看视频一区 | 国产精品一区二区在线观看 | 国产激情视频 | 久久99国产精品 | 日韩一区二区不卡 | 91网站视频在线观看 | 国产探花在线精品一区二区 | 波多野结衣精品 | www.99热.com | 丁香婷婷综合激情五月色 | 久久久久久精 | 国产精品视频偷伦精品视频 | 亚洲成人精品 | 亚洲精品2区| 亚洲精品福利视频 | 九九热精| 国产精品国产精品国产专区不蜜 | 亚洲欧美一区在线 | 欧美福利在线 | 亚洲国产免费 | 久久精品欧美一区二区三区不卡 | 国内精品视频在线观看 |