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,如需转载请自行联系原作者



相关文章
|
3月前
|
Linux Shell
Linux系统编程:掌握popen函数的使用
记得在使用完 `popen`打开的流后,总是使用 `pclose`来正确关闭它,并回收资源。这种做法符合良好的编程习惯,有助于保持程序的健壮性和稳定性。
113 6
|
3月前
|
Linux Shell
Linux系统编程:掌握popen函数的使用
记得在使用完 `popen`打开的流后,总是使用 `pclose`来正确关闭它,并回收资源。这种做法符合良好的编程习惯,有助于保持程序的健壮性和稳定性。
145 3
|
3月前
|
Linux
在Linux内核中根据函数指针输出函数名称
在Linux内核中根据函数指针输出函数名称
|
4月前
|
Linux PHP
Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程
【8月更文挑战第27天】本文介绍两种禁用PHP执行的方法:使用`PHP_diseval_extension`禁用和通过`suhosin`禁用。由于`suhosin`不支持PHP8,仅适用于PHP7及以下版本,若服务器安装了PHP5.6,则需对应安装`suhosin-0.9.38`版本。文章提供了详细的安装步骤,并强调了宝塔环境下与普通环境下的PHP路径差异。安装完成后,在`php.ini`中添加`suhosin.so`扩展并设置`executor.disable_eval = on`以禁用执行功能。最后通过测试代码验证是否成功禁用,并重启`php-fpm`服务生效。
49 2
|
4月前
|
Shell Linux C语言
Linux0.11 execve函数(六)
Linux0.11 execve函数(六)
70 1
|
4月前
|
Linux API
Linux源码阅读笔记07-进程管理4大常用API函数
Linux源码阅读笔记07-进程管理4大常用API函数
|
4月前
|
安全 Unix Linux
Linux Clone函数
Linux Clone函数
64 3
|
4月前
|
Linux
Linux0.11 文件打开open函数(五)
Linux0.11 文件打开open函数(五)
48 0
|
4月前
|
存储 Linux 调度
Linux 0.11 fork 函数(二)
Linux 0.11 fork 函数(二)
43 0
|
4月前
|
Shell Linux 程序员
在Linux中, 什么是shell函数?如何使用它们?
在Linux中, 什么是shell函数?如何使用它们?
下一篇
无影云桌面