最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux中獲取某個(gè)進(jìn)程的系統(tǒng)調(diào)用以及參數(shù)(故障排查案例)

 更新時(shí)間:2014年06月11日 09:36:37   作者:  
這篇文章主要介紹了Linux中獲取某個(gè)進(jìn)程的系統(tǒng)調(diào)用以及參數(shù)的方法,總結(jié)自一個(gè)故障排查案例,需要的朋友可以參考下

當(dāng)一個(gè)程序發(fā)生故障時(shí),有時(shí)候想通過了解該進(jìn)程正在執(zhí)行的系統(tǒng)調(diào)用來排查問題。通??梢杂?strace 來跟蹤。但是當(dāng)進(jìn)程已經(jīng)處于 D 狀態(tài)(uninterruptible sleep)時(shí),strace 也幫不上忙。這時(shí)候可以通過

復(fù)制代碼 代碼如下:
cat /proc/<PID>/syscall

來獲取當(dāng)前的系統(tǒng)調(diào)用以及參數(shù)。


這里用最近排查的一個(gè)問題為例。碰到的問題是,發(fā)現(xiàn)一臺(tái)服務(wù)器在執(zhí)行 pvcreate 創(chuàng)建物理卷的時(shí)候卡死,進(jìn)程狀態(tài)為 D

復(fù)制代碼 代碼如下:

# ps aux|grep pvcreate
root      8443  0.0  0.0  27096  2152 ?        D    Apr04   0:00 pvcreate /dev/sddlmac
...


D 狀態(tài)實(shí)際是在等待系統(tǒng)調(diào)用返回。那么來看看究竟在等待什么系統(tǒng)調(diào)用

復(fù)制代碼 代碼如下:

B0313010:~ # cat /proc/8443/syscall
0 0x7 0x70f000 0x1000 0x0 0x7f33e1532e80 0x7f33e1532ed8 0x7fff3a6b8718 0x7f33e128cf00

第一個(gè)數(shù)字是系統(tǒng)調(diào)用號(hào),后面是參數(shù)。不同的系統(tǒng)調(diào)用所需的參數(shù)個(gè)數(shù)不同。這里的字段數(shù)是按最大參數(shù)數(shù)量來的,所以不一定每個(gè)參數(shù)字段都有價(jià)值。那么怎么知道系統(tǒng)調(diào)用號(hào)對(duì)應(yīng)哪個(gè)系統(tǒng)調(diào)用呢?在頭文件 /usr/include/asm/unistd_64.h 中都有定義。也可以用個(gè)小腳本來快速查找:

復(fù)制代碼 代碼如下:

#!/bin/bash
# usage: whichsyscall <syscall_nr>
nr="$1"
file="/usr/include/asm/unistd_64.h"
gawk '$1=="#define" && $3=="'$nr'" {sub("^__NR_","",$2);print $2}' "$file"


對(duì)于不同的系統(tǒng)調(diào)用的參數(shù),可以通過 man 2 <系統(tǒng)調(diào)用名> 查閱。如 man 2 read。對(duì)剛才那個(gè)例子來說,0 就對(duì)應(yīng)了 read 調(diào)用。而 read 調(diào)用的第一個(gè)參數(shù)是文件描述符。

之后用 lsof 找到 7 對(duì)應(yīng)的是什么文件

復(fù)制代碼 代碼如下:

#  lsof -p 8443
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
......
pvcreate 8443 root    5u   CHR 10,236      0t0    19499 /dev/mapper/control
pvcreate 8443 root    6u   BLK  253,1   0t8192 36340797 /dev/dm-1
pvcreate 8443 root    7u   BLK  253,5      0t0 35667968 /dev/dm-5

結(jié)果發(fā)現(xiàn)是個(gè) device mapper 的設(shè)備文件。最后順藤摸瓜,發(fā)現(xiàn)這個(gè)文件是 multipathd 創(chuàng)建的。而系統(tǒng)應(yīng)當(dāng)使用的是存儲(chǔ)廠商提供的多路徑軟件。問題是由于同時(shí)開啟了 multipathd 造成沖突導(dǎo)致的。

/proc/<PID>/syscall 對(duì)排查 D 狀態(tài)進(jìn)程很有用。不過在 2.6.18 內(nèi)核上并不支持,具體從哪個(gè)內(nèi)核版本開始有這個(gè)功能,還沒查到。不過至少從在 2.6.32 以上版本都是支持的。

相關(guān)文章

  • 利用perl、python、php、shell、sed、awk、c 實(shí)現(xiàn)字符串的翻轉(zhuǎn)

    利用perl、python、php、shell、sed、awk、c 實(shí)現(xiàn)字符串的翻轉(zhuǎn)

    今天心血來潮,看到下面的題目后延伸了一下,回顧自己以前學(xué)到的一些知識(shí)
    2014-04-04
  • bash腳本編程學(xué)習(xí)之算術(shù)運(yùn)算與文件查找

    bash腳本編程學(xué)習(xí)之算術(shù)運(yùn)算與文件查找

    算數(shù)運(yùn)算在每個(gè)編程語言里面是最基本的功能,在bash里面也是。下面這篇文章就給大家詳細(xì)介紹了腳本編程bash中的算術(shù)運(yùn)算與文件查找,文中還給出了多道練習(xí)題和答案,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • Linux shell腳本中字符串連接的方法

    Linux shell腳本中字符串連接的方法

    這篇文章主要介紹了Linux shell腳本中連接字符串的方法,大家參考使用吧
    2013-12-12
  • linux中 pmap 命令詳解

    linux中 pmap 命令詳解

    這篇文章主要介紹了linux中 pmap 命令詳解,需要的朋友可以參考下
    2017-09-09
  • Shell腳本調(diào)用另一個(gè)腳本的三種方法

    Shell腳本調(diào)用另一個(gè)腳本的三種方法

    這篇文章主要介紹了Shell腳本調(diào)用另一個(gè)腳本的三種方法,幫助大家更好的理解和學(xué)習(xí)shell,感興趣的朋友可以了解下
    2020-08-08
  • Shell中函數(shù)返回值超出問題

    Shell中函數(shù)返回值超出問題

    這篇文章主要介紹了Shell中函數(shù)返回值超出問題,shell中通過return返回是有限制的,最大返回255,超過255,則從0開始計(jì)算,需要的朋友可以參考下
    2015-05-05
  • shell去掉文件中空行(空白行)的方法詳解

    shell去掉文件中空行(空白行)的方法詳解

    最近要查看的日志文件提取后有很多空行,不利于以前的文件可以進(jìn)行比較了,為了向下兼容,只能取得時(shí)候把空行刪除掉
    2013-10-10
  • 自動(dòng)生成linux網(wǎng)卡配置腳本分享

    自動(dòng)生成linux網(wǎng)卡配置腳本分享

    這篇文章主要介紹了自動(dòng)生成linux網(wǎng)卡配置的腳本,因?yàn)長inux虛擬機(jī)在復(fù)制時(shí)候網(wǎng)卡信息會(huì)更新,所以導(dǎo)致需要重新配置網(wǎng)卡。本腳本功能,第一次添加網(wǎng)卡后,啟動(dòng)虛擬機(jī),然后運(yùn)行腳本(可以寫在啟動(dòng)腳步中),然后根據(jù)ifconfig -a 的信息來創(chuàng)建ifcfg-ethX的配置文件或者修改對(duì)應(yīng)的ifcfg-ethX的mac
    2014-03-03
  • linux shell之文件鎖

    linux shell之文件鎖

    經(jīng)常在 shell 腳本里要阻止其它進(jìn)程,比如 msmtp 自帶的mail queue 腳本,這個(gè)腳本的互斥做法是不正確的,下面介紹下發(fā)現(xiàn)的三個(gè)通過文件達(dá)到互斥的正確做法
    2016-08-08
  • expect實(shí)現(xiàn)批量修改linux密碼腳本分享

    expect實(shí)現(xiàn)批量修改linux密碼腳本分享

    這篇文章主要介紹了expect實(shí)現(xiàn)批量修改Linux密碼腳本分享,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-12-12

最新評(píng)論

柳州市| 台东县| 无锡市| 汾阳市| 五寨县| 马龙县| 右玉县| 蓝山县| 泗洪县| 北流市| 岐山县| 大港区| 绍兴县| 阳信县| 贺州市| 历史| 会同县| 桂东县| 三明市| 涪陵区| 玉田县| 赤城县| 雅江县| 汕尾市| 察雅县| 巫山县| 浦北县| 新平| 子洲县| 永川市| 达拉特旗| 浏阳市| 荥阳市| 依安县| 阿瓦提县| 裕民县| 雅江县| 盐山县| 曲阜市| 舒兰市| 台中市|