Linux
如何查找給定程序的 .pid 文件
我正在設置監視器並想要監視給定的 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 也可以監視程序字元串模式。