成人免费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

2023-01-05 16:02:40

Linux揚聲器

2011-08-12 14:53:56

kill中文man

2021-05-25 09:30:44

kill -9Linux kill -9 pid

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技術棧公眾號

主站蜘蛛池模板: 欧美成人精品一区二区三区 | 先锋影音资源网站 | 成人午夜在线视频 | 日韩在线中文字幕 | 欧美日韩一区在线观看 | 成人做爰www免费看视频网站 | 巨大黑人极品videos精品 | 欧美色专区 | 午夜精品网站 | 中文字幕日韩欧美一区二区三区 | 成人在线播放网站 | 欧美美女一区二区 | 亚洲+变态+欧美+另类+精品 | www.99re | 日本人做爰大片免费观看一老师 | 午夜影院视频在线观看 | 午夜私人影院在线观看 | 免费毛片网站在线观看 | 午夜tv免费观看 | 日本精品一区二区三区在线观看视频 | 久在线| 99久久久久久 | 免费av播放 | 中文av网站| 国产精品久久久久久一区二区三区 | 欧美精品久久一区 | 天天草天天 | 亚洲国产二区 | 九热在线 | 国产网站在线 | 久久极品 | 欧美99 | 日本一区二区三区四区 | 国产一级片免费视频 | 中文字幕av一区 | 91精品国产91久久久久久不卞 | 天天综合操 | 日韩羞羞| 久久久国产精品入口麻豆 | 中文字幕第一页在线 | 久久精品日产第一区二区三区 |