linux中run函数什么时候调用,linux的functions之__pids_var_run函数详解

# 该函数有二个作用:

# 1、根据给定的二进制运行程序,找出该程序的进程号(PID)。

# 2、判断该二进制程序的运行状态,输出不同的返回値,供查看一个程序的运行状态时使用。

# __proc_pids {program} [pidfile]   -----> 该函数的用法

# 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##*/}

# 参数替换,使用局部变量$base 存储程序的二进制文件名。

local pid_file=${2:-/var/run/$base.pid}

# 参数替换。如果调用该函数时,没有给$2或为空,将使

# 用/var/run/$base.pid作为变量 pid_file的值。

pid=       # 设置一个全局变量,但其值为空。记录进程的PID号

if [ -f "$pid_file" ] ; then   # 判断变量的值是否是一个文件,

local line p

read line 

for p in $line ; do

[ -z "${p//[0-9]/}" -a -d "/proc/$p" ] && pid="$pid $p"

# 找出二进制运行程序的PID号。

# 一个二进制可运行程序启动后,一般会在/var/run/目录下创建一个

# $base.pid 文件。

#同时会把自己的进程号(PID)写到该文件中,当然有可能也会把另外的信息写到该文件中

# 同时系统会在/proc 目录中创建一个以该二进制运行程序的PID为名称的目录

# 该目录保存了,二进制运行程序的使用资源情况等等。

#也有例外:/var/run/$base.pid 文件是空的。也有程序把pid文件存放在其它目

#的。mysql

done

if [ -n "$pid" ]; then

return 0

# 如果找到进程号就返回状态码 0.代表二进制程序是运行的。

fi

return 1 # "Program is dead and /var/run pid file exists"

# 如果找不到进程号,就返回状态码 1.但是: /var/run/目录下是有pid文件的。

# $base.pid是空的,也会找不到PID的。但是并不代表$base是不运行的。

fi

return 3 # "Program is not running"

# 如果:/var/run/ 目录上没有pid文件,就返回状态码 3 .该二进制程序是停止的。

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值