博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux的 functions之status函数详解
阅读量:5820 次
发布时间:2019-06-18

本文共 1505 字,大约阅读时间需要 5 分钟。

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

你可能感兴趣的文章
python 异常
查看>>
百度账号注销
查看>>
mysql-This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决
查看>>
BIEE Demo(RPD创建 + 分析 +仪表盘 )
查看>>
Cocos2dx 3.0开发环境的搭建--Eclipse建立在Android工程
查看>>
基本概念复习
查看>>
重构第10天:提取方法(Extract Method)
查看>>
Android Fragment使用(四) Toolbar使用及Fragment中的Toolbar处理
查看>>
解决pycharm在ubuntu下搜狗输入法一直固定在左下角的问题
查看>>
“Info.plist” couldn’t be removed
查看>>
多线程day01
查看>>
react-native 模仿原生 实现下拉刷新/上拉加载更多(RefreshListView)
查看>>
MySQL出现Access denied for user ‘root’@’localhost’ (using password:YES)
查看>>
通过Roslyn构建自己的C#脚本(更新版)(转)
查看>>
红黑树
查看>>
UIImagePickerController拍照与摄像
查看>>
python调用windows api
查看>>
第四章 mybatis批量insert
查看>>
Java并发框架——什么是AQS框架
查看>>
【数据库】
查看>>