linux的 functions之status函数详解

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# 检测一个二进制可运行程序是否运行:
# 使用方法:
         status [-p pidfile] {program}
status() {
         local  base pid pid_file=
         # Test syntax.          # 测试调用该函数时的参数格式。
         if  "$#"  = 0 ] ;  then
                 echo  $ "Usage: status [-p pidfile] {program}"   
                # 如果调用该函数没有给一个参数的话就显示:该函数的使用方法,然后直
                #接退出。退出状态码:1
                 return  1
         fi
         if  "$1"  "-p"  ];  then
                 pid_file=$2     
                 shift  2
         fi
         base=${1 ##*/}   # 使用$base 记录二进制可运行程序的文件名。
         # First try "pidof"
         __pids_var_run  "$1"  "$pid_file"  
         # 调用函数:__pids_var_run 来检测二进制程序的运行状态。
         RC=$?
         if  [ -z  "$pid_file"  -a -z  "$pid"  ];  then  
         # 如果调用 status时,没有传递pidfile文件,并且没有检测到PID号
                 pid= "$(__pids_pidof " $1 ")"   
           # 因为有些二进制可运行程序,是不会把PID写到 
           # /var/run/$base.pid文件当中的。就调用函数__pids_pidof来查找PID号
         fi
####################################################################
         if  [ -n  "$pid"  ];  then   
         # 如果查到二进制运行程序的PID号,就代表该该二进制程序是运行的。
                 echo  $ "${base} (pid $pid) is running..."
                 return  0
         fi
         case  "$RC"  in   
         # 根据函数:__pids_var_run返回的状态码,来判断二进制程序的运行状态。
                 0)
                         echo  $ "${base} (pid $pid) is running..."
                         return  0
                         ;;
                 1)
                         echo  $ "${base} dead but pid file exists"  
                       # 如果函数:__pids_var_run返回的状态码是:1 ,的话....
                         return  1
                         ;;
         esac
#####################################################################
         # See if /var/lock/subsys/${base} exists   # ***锁文件。
         if  [ -f  /var/lock/subsys/ ${base} ];  then
                 echo  $ "${base} dead but subsys locked"
                 return  2
         fi
         echo  $ "${base} is stopped"
         return  3
}

 



     本文转自成长的小虫 51CTO博客,原文链接:http://blog.51cto.com/9528du/1420154,如需转载请自行联系原作者



相关文章
|
1月前
|
Linux
关于Linux目录访问函数总结
关于Linux目录访问函数总结
19 1
|
1月前
|
Linux
【Linux 系统编程】wait函数详解
【Linux 系统编程】wait函数详解
48 0
|
1月前
|
算法 Linux C++
【Linux系统编程】深入解析Linux中read函数的错误场景
【Linux系统编程】深入解析Linux中read函数的错误场景
222 0
|
1月前
|
存储 算法 Linux
【Linux系统编程】深入理解Linux目录扫描函数:scandir目录函数(按条件扫描目录
【Linux系统编程】深入理解Linux目录扫描函数:scandir目录函数(按条件扫描目录
119 0
|
1月前
|
算法 Linux C语言
【Linux系统编程】深入理解Linux目录操作:文件夹位置指针操作函数(telldir,seekdir,rewinddir)
【Linux系统编程】深入理解Linux目录操作:文件夹位置指针操作函数(telldir,seekdir,rewinddir)
38 0
|
1月前
|
算法 Linux C++
【Linux系统编程】深入理解Linux中的chmod函数和mode_t类型
【Linux系统编程】深入理解Linux中的chmod函数和mode_t类型
54 0
|
19天前
|
Linux C++
Linux C/C++ main函数
Linux C/C++ main函数
|
1月前
|
Linux
linux中wait与waitpid函数使用场景及扩展
linux中wait与waitpid函数使用场景及扩展
|
1月前
|
Linux
linux中fork函数与vfork函数的区别
linux中fork函数与vfork函数的区别
|
1月前
|
存储 算法 网络协议
【探索Linux】P.26(网络编程套接字基本概念—— socket编程接口 | socket编程接口相关函数详细介绍 )
【探索Linux】P.26(网络编程套接字基本概念—— socket编程接口 | socket编程接口相关函数详细介绍 )
29 0