程序启动脚本 shell

#!/bin/bash

#===============================================================================
#脚本运行的格式为 basename path -r|-k -r为启动程序,-k为kill程序。
# Name        : hlht.sh
# Author      : nanyun
# Version     : v1.0
# Date        : 20120206
# Copyright   : XXXXXXXXXXXXXXXXXXXXXXXXXXXX
# Description :扫描指定路径下面的可执行文件,如果没有启动就启动该程序。
#===============================================================================

ARGS=2 
E_BADARGS=65
E_NOSUCHFILE=66
 
if [ $# -ne "$ARGS" ] 
then
    if [ "$1"="-h" -o "$1"="--help" ];then
        echo -e "# Description :扫描指定路径下面的可执行文件启动或者是kill程序,进程启动必须是全路径启动"
        echo -e "#脚本运行的格式为 basename path -r|-k -r为启动程序,-k为kill程序。"  
    fi
    echo "Usage: `basename $0` Path -r or -k" 
    exit $E_BADARGS 
fi 

if [ ! -d $1 ];then
    echo "$1: No such file or directory"
    exit $E_NOSUCHFILE 
fi

ScriptSelfPwd=$(cd "$(dirname "$0")"; pwd)
cd "$ScriptSelfPwd"

case "$2" in 
    -r|-R)
        FINDEXE="find  $1 -type f -perm -755"
        for PROCFULLPATH in $($FINDEXE)
        do 
            CHECKRUN=$(ps -ef |grep "$PROCFULLPATH" |grep -v "grep")
            if [ -z "$CHECKRUN" ];then
                EXEPATH=$(dirname "$PROCFULLPATH")
                cd "$EXEPATH"
                if [ `pwd`=="$EXEPATH" ];then
                    echo -e "nohup $PROCFULLPATH &"
                    nohup "$PROCFULLPATH" &
                fi
            fi
        done
        ;;
    -k|-K)
        FINDEXE="find  $1 -type f -perm -755"
        for PROCFULLPATH in $($FINDEXE)
        do 
            GETKILLPID=$(ps -ef |grep "$PROCFULLPATH" |grep -v "grep"|awk '{print $2}')
            if [ -n "$GETKILLPID" ];then
                echo -e "kill $PROCFULLPATH pid $GETKILLPID"
                kill -9 "$GETKILLPID"
            fi
        done
        ;;
    *)
        echo "$0: invalid option $2"
        echo "Try $0 --help for more information."
esac
cd "$ScriptSelfPwd"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值