一段查询自身是否已在运行的脚本test.sh,有些要注意到地方
来源:互联网 发布:平板显示无法加入网络 编辑:程序博客网 时间:2024/05/16 14:11
#!/bin/bash
#必须有上面一行,否则ps显示的进程是bash,而不是test.sh
isprocrunning(){
echo "check $1 is running or not"
local p=`ps -C $1 -o pid=` #如果多个同名进程在运行,则$p如:"1111 2222"
for pid in $p; do
if [ $pid -ne $$ ]; then #检查ps到的进程是否为自己,必须这样做
echo "another proc $pid is running"
return 1
else
echo "local pid is $pid"
fi
done
return 0
}
#测试一下
isprocrunning `basename $0`
if [ $? -eq 1 ]; then
echo "is running"
sleep 10
else
sleep 20
fi
/////////////////////////////////////////////////////////////////
#另一段代码,
isprocrunning(){
local user=`whoami`
echo `ps -u root -f|grep $1|grep -v grep`
local procs=`ps -u $user -f |grep $1 |grep -v grep | gawk'{print $2}'`
for pid in $procs; do
if [ $pid -ne $$ ]; then
echo $pid
return 1;
fi
done
return 0
}
#但是使用如下方式执行时会失败,总是显示脚本在运行
#原因是系统会启动一个子shell执行``中的函数,并且ps出来的父子shell进程的命令参数完全一样!
aa=`isprocrunning script_name`
- 一段查询自身是否已在运行的脚本test.sh,有些要注意到地方
- sh 脚本判断 tomcat是否已启动
- 以前没有注意到的地方
- bash 中sh脚本自身路径的获取
- 如何在esxi5上运行.sh脚本
- 检查应用程序是否存在已在运行的实例
- 一个能运行的sh脚本
- 程序检测自身是否运行在虚拟机下
- 使用 Calendar 需要注意到的一点地方
- Java中不容易被注意到的地方
- 树莓派sh脚本运行
- 脚本作业(test.sh)
- Unix下的C编译脚本 test.sh
- Handler在使用过程中有些要注意地方
- 一段检测当前进程是否已经在运行了的代码,非常实用!
- 在unix上运行小的sh,查询emp表中的总数。
- VBS脚本运行后删除自身的方法
- 有些需要注意的地方
- WinSxS技术
- solaris下查看进程的cpu占用率
- Direct3D9初始化
- uml学习--在软件开发各个阶段应用
- [primer] chapter-7 Functions
- 一段查询自身是否已在运行的脚本test.sh,有些要注意到地方
- 用dom4j的方式解析和生成xml文件
- 如何获取谁在委托
- Attribute "nameSpace" must be declared for element type "sqlMap".
- 汉字转换为拼音字头的工具类与原理
- 现在
- SAP QUERY
- printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - 输出格式转换
- jsp导出excel文件并设定单元格格式