欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pidof命令獲取不到程序的pid問題解決

 更新時間:2023年09月07日 09:04:09   作者:viyon  
這篇文章主要為大家介紹了pidof命令獲取不到程序的pid問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

pidof命令獲取不到程序的pid

問題描述

有一個功能,需要監(jiān)控某個進(jìn)程是否運行,如果由于某些原因沒在運行(如異常掛死),則執(zhí)行某個腳本,重新啟動系統(tǒng)。很簡單那的一個功能,三下五除二寫了一個腳本:

#!/bin/bash
all_process_pid=(`pidof xxxx`)
process_num=${all_process_pid[*]}
if [ ${process_num}  -eq 1 ];then
    echo "normal"
else
    echo "unnormal"
fi
exit

運行后,很完美,可以正常工作。然而在運行了一段時間后,總是發(fā)現(xiàn)系統(tǒng)莫名奇妙地重啟,查看日志發(fā)現(xiàn)被監(jiān)控的xxxx進(jìn)程總是異常退出,因而會重啟系統(tǒng)。然而這個進(jìn)程一般情況下比較穩(wěn)定,不會那么頻繁的掛死。但為了確定問題,就在監(jiān)控腳本中加了一些調(diào)試信息,打印出現(xiàn)異常時候所有的進(jìn)程。當(dāng)出現(xiàn)問題的時候,發(fā)現(xiàn)這個進(jìn)程其實是存在的,通過ps可以看到這個進(jìn)程正則運行,但通過pidof獲得的進(jìn)程卻為空,基本上判斷是pidof未找到進(jìn)程ID導(dǎo)致的,可為什么pidof未找到呢?查詢資料后發(fā)現(xiàn),pidof默認(rèn)情況下,不能列出zombie和I/O waiting狀態(tài)的進(jìn)程。

查看 zombie和I/O waiting狀態(tài)的進(jìn)程

通過pidof -h可以看到有個-z選項可以列出zombie和I/O waiting狀態(tài)的進(jìn)程。

[root@probe: ~]$ pidof  -h
pidof usage: [options] <program-name>

 -c           Return PIDs with the same root directory
 -d <sep>     Use the provided character as output separator
 -h           Display this help text
 -n           Avoid using stat system function on network shares
 -o <pid>     Omit results with a given PID
 -q           Quiet mode. Do not display output
 -s           Only return one PID
 -x           Return PIDs of shells running scripts with a matching name
 -z           List zombie and I/O waiting processes. May cause pidof to hang.

但這個-z選項可能會導(dǎo)致pidof異常。

需要注意的是,不是每個發(fā)行的操作系統(tǒng)中的pidof命令都有-z選項,比如我目前使用的fedora workstation 38版本中,pidof就沒有-z選項。

[zy@fedora ~]$ pidof -V
pidof from procps-ng 3.3.17
[zy@fedora ~]$ pidof -h

Usage:
 pidof [options] [program [...]]

Options:
 -s, --single-shot         return one PID only
 -c, --check-root          omit processes with different root
 -q,                       quiet mode, only set the exit code
 -w, --with-workers        show kernel workers too
 -x                        also find shells running the named scripts
 -o, --omit-pid <PID,...>  omit processes with PID
 -S, --separator SEP       use SEP as separator put between PIDs
 -h, --help     display this help and exit
 -V, --version  output version information and exit

解決方案

問題既然已經(jīng)明確,就比較好修改了。由于pidof使用-z選項存在風(fēng)險,且pidof命令在不同的操作系統(tǒng)中參數(shù)不相同,當(dāng)軟件運行在不支持-z選項的操作系統(tǒng)上會有問題,因此決定使用其它命令判斷。使用ps和grep組合進(jìn)行判斷。

參考資料https://forums.linuxmint.com/viewtopic.php?t=335764

以上就是pidof命令獲取不到程序的pid問題解決的詳細(xì)內(nèi)容,更多關(guān)于pidof命令獲取不到程序pid的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Linux中修改文件名的多種方法總結(jié)

    Linux中修改文件名的多種方法總結(jié)

    在Linux系統(tǒng)中,通過命令行界面可以方便地修改文件名,本篇博客將介紹幾種常見的方法,包括mv命令、rename命令、find和mv命令的組合、sed命令以及使用bash腳本,這些方法可以根據(jù)實際需求進(jìn)行選擇,提供了靈活性和多樣性,需要的朋友可以參考下
    2024-01-01
  • Linux系統(tǒng)中同時執(zhí)行多個腳本運行方法小結(jié)

    Linux系統(tǒng)中同時執(zhí)行多個腳本運行方法小結(jié)

    文章詳細(xì)解釋了在命令行中使用&&,||,;和&符號來控制Python腳本的執(zhí)行順序和錯誤處理策略,&&確保前一個腳本成功后執(zhí)行下一個,||則在前一個腳本失敗后執(zhí)行后續(xù)腳本,;無論前一個腳本是否出錯都會執(zhí)行下一個,而&則用于并行執(zhí)行多個腳本,需要的朋友可以參考下
    2024-12-12
  • Linux中的內(nèi)核鏈表實例詳解

    Linux中的內(nèi)核鏈表實例詳解

    這篇文章主要介紹了Linux中的內(nèi)核鏈表實例詳解的相關(guān)資料,鏈表中一般都要進(jìn)行初始化、插入、刪除、顯示、釋放鏈表,尋找節(jié)點這幾個操作,需要的朋友可以參考下
    2017-08-08
  • Linux中的service命令與systemctl命令有何區(qū)別

    Linux中的service命令與systemctl命令有何區(qū)別

    在Linux中,service?和?systemctl?是兩個至關(guān)重要且極其相似的命令,它們?nèi)绱讼嗨?,以至于人們很容易想知道它們之間有何不同,是否可以互換使用,下面我們就來看看之前的區(qū)別到底有哪些吧
    2023-08-08
  • Shell腳本實現(xiàn)檢測文件是否被修改過代碼分享

    Shell腳本實現(xiàn)檢測文件是否被修改過代碼分享

    這篇文章主要介紹了Shell腳本實現(xiàn)的檢測文件是否被修改代碼分享,其實了解了原理就可以做很多事了,需要的朋友可以參考下
    2014-09-09
  • shell 生成隨機(jī)數(shù)的實現(xiàn)方法總結(jié)

    shell 生成隨機(jī)數(shù)的實現(xiàn)方法總結(jié)

    這篇文章主要介紹了 shell 生成隨機(jī)數(shù)的實現(xiàn)方法總結(jié)的相關(guān)資料,希望通過本能幫助到大家,讓大家徹底掌握這幾種隨機(jī)數(shù)的方法,需要的朋友可以參考下
    2017-09-09
  • shell腳本實現(xiàn)統(tǒng)計文件大小、批量創(chuàng)建用戶的示例

    shell腳本實現(xiàn)統(tǒng)計文件大小、批量創(chuàng)建用戶的示例

    這篇文章主要介紹了shell腳本實現(xiàn)統(tǒng)計文件大小、批量創(chuàng)建用戶的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Linux中10個有用的命令行補(bǔ)全例子

    Linux中10個有用的命令行補(bǔ)全例子

    這篇文章主要為大家詳細(xì)介紹了Linux中10個有用的命令行補(bǔ)全例子,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • shell中的排序算法示例代碼

    shell中的排序算法示例代碼

    本文主要介紹了shell中的排序算法示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 使用AWK在shell中生成日歷小程序

    使用AWK在shell中生成日歷小程序

    這篇文章主要為大家詳細(xì)介紹了如何使用AWK在shell中生成日歷小程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07

最新評論