点击(此处)折叠或打开
- #!/bin/sh
- #程序描述:个性化的nohup,可以判断程序是否启动,如启动,则不重复启动指定程序
- #作者: 程晓鹏
- #日期: 2015.01.14
- #获取进程ID
- #参数1:要查询的进行名称
- #参数2:要屏蔽的参数
- #返回值,进程ID
- function PID
- {
- exe="$1";
- no_grep="$2";
- pid=`ps -ef | grep "$exe" | grep -v "$no_grep" | grep -v grep | awk '{print $2}'`;
- echo "$pid";
- }
- #错误信息打印
- #参数1:执行的shell程序名称
- function error_info
- {
- v_exe_name="$1";
- echo "use ${v_exe_name} /start_file_path";
- }
- args_size=$#; #参数个数
- if [ "$args_size" -gt 0 ]; then
- filepath=$1;
- filename=`basename $1`; #文件名
- pid=$(PID "$filename" "$0"); #查询执行的文件名,当前进程中是否存在
- if [ ${#pid} -gt 0 ]; then #当进程,正在运行时
- print_loginfo="$filepath 已经启动,无须进行启动,进程ID=$pid";
- echo "$print_loginfo";
- else
- print_loginfo="$filepath 开始启动... ...";
- echo "$print_loginfo";
- nohup $* & #执行nohup操作
- fi;
- else
- error_info $0; #打印错误信息
- fi;