Linux

如何查找給定程序的 .pid 文件

  • December 7, 2016

我正在設置監視器並想要監視給定的 python 應用程序。Monit 通過查看程序的 .pid 文件來做到這一點,但我不知道它會在哪裡。

我還嘗試創建自己的簡單執行檔並執行它——在這裡我也無法弄清楚 .pid 文件的創建位置。

所有程序都有一個 .pid 文件嗎?

您通常會/var/run/在 Redhat/CentOS 風格的系統中找到守護程序的 PID 文件。

除此之外,您始終可以查看程序初始化腳本。例如,SSH 守護程序是使用/etc/init.d/sshd. 有時會在此處定義 PID(搜尋 pid、PID、PIDFILE、PID_FILE 等)。

但是,RHEL 風格系統上的大多數其他守護程序都/etc/init.d/functions為某些常見功能提供腳本。

# Set $pid to pids from /var/run* for {program}.  $pid should be declared
# local in the caller.
# Returns LSB exit code for the 'status' action.
__pids_var_run() {
       local base=${1##*/}
       local pid_file=${2:-/var/run/$base.pid}

對於任何來源/etc/init.d/functions,PID 都會存在/var/run/*.pid

對於自定義應用程序,PID 將在包裝腳本中定義(希望如此)。不過,我認識的大多數開發人員都遵循與上述守護程序相同的約定。

如果您確實遇到了沒有 PID 文件的情況,請記住Monit 也可以監視程序字元串模式

引用自:https://serverfault.com/questions/417892