亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

pidof命令獲取不到程序的pid

問題描述

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

#!/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

運(yùn)行后,很完美,可以正常工作。然而在運(yùn)行了一段時(shí)間后,總是發(fā)現(xiàn)系統(tǒng)莫名奇妙地重啟,查看日志發(fā)現(xiàn)被監(jiān)控的xxxx進(jìn)程總是異常退出,因而會重啟系統(tǒng)。然而這個(gè)進(jìn)程一般情況下比較穩(wěn)定,不會那么頻繁的掛死。但為了確定問題,就在監(jiān)控腳本中加了一些調(diào)試信息,打印出現(xiàn)異常時(shí)候所有的進(jìn)程。當(dāng)出現(xiàn)問題的時(shí)候,發(fā)現(xiàn)這個(gè)進(jìn)程其實(shí)是存在的,通過ps可以看到這個(gè)進(jìn)程正則運(yù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可以看到有個(gè)-z選項(xiàng)可以列出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.

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

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

[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選項(xiàng)存在風(fēng)險(xiǎn),且pidof命令在不同的操作系統(tǒng)中參數(shù)不相同,當(dāng)軟件運(yùn)行在不支持-z選項(xiàng)的操作系統(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ù)實(shí)際需求進(jìn)行選擇,提供了靈活性和多樣性,需要的朋友可以參考下
    2024-01-01
  • Linux系統(tǒng)中同時(shí)執(zhí)行多個(gè)腳本運(yùn)行方法小結(jié)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    shell中的排序算法示例代碼

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

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

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

最新評論