点击(此处)折叠或打开

  1. #!/bin/sh

  2. #程序描述:个性化的nohup,可以判断程序是否启动,如启动,则不重复启动指定程序
  3. #作者:    程晓鹏
  4. #日期:    2015.01.14

  5. #获取进程ID
  6. #参数1:要查询的进行名称
  7. #参数2:要屏蔽的参数
  8. #返回值,进程ID
  9. function PID
  10. {
  11.   exe="$1";
  12.   no_grep="$2";
  13.   pid=`ps -ef | grep "$exe" | grep -v "$no_grep" | grep -v grep | awk '{print $2}'`;
  14.   echo "$pid";
  15. }

  16. #错误信息打印
  17. #参数1:执行的shell程序名称
  18. function error_info
  19. {
  20.   v_exe_name="$1";
  21.   echo "use ${v_exe_name} /start_file_path";
  22. }

  23. args_size=$#; #参数个数
  24. if [ "$args_size" -gt 0 ]; then
  25.   filepath=$1;
  26.   filename=`basename $1`; #文件名
  27.   pid=$(PID "$filename" "$0"); #查询执行的文件名,当前进程中是否存在

  28.   if [ ${#pid} -gt 0 ]; then #当进程,正在运行时
  29.     print_loginfo="$filepath 已经启动,无须进行启动,进程ID=$pid";
  30.     echo "$print_loginfo";
  31.   else
  32.     print_loginfo="$filepath 开始启动... ...";
  33.     echo "$print_loginfo";
  34.     nohup $* & #执行nohup操作
  35.   fi;
  36. else
  37.   error_info $0; #打印错误信息
  38. fi;

11-27 19:26