`

linux脚本归纳

阅读更多

1.可选择输出到控制台还是后台运行

红色为注意更改路径

#!/bin/sh
#--------------------------------------------------------------
# sst.sh - Start/Stop script for SST
#
# Environment Variable Prequisties
#
#   JAVA_HOME     Must point at your Java Development Kit installation
#
#   Application_HOME      Point to your program
#
# --------------------------------------------------------------

Application_HOME="/home/pnsuser/PCRF_SMS_Mediator"
JAVA_HOME="/usr/java/jdk1.6.0_30"

Application_Name="PCRF_SMS_Mediator"
Main_Class="com.pccwmobile.pcrf.notification.main.PCRFNotificationMain"

cd $Application_HOME

if [ "$1" = "stop" ] ; then
        echo "Stopping $Application_Name Program ..."
        PIDLIST=`ps --width 8000 -fu $USER | grep -v "grep" | grep "$Main_Class" | cut -c 9-14`
        PID=`echo $PIDLIST | cut -c 1-5`
        if [ -n "$PID" ] ; then
                echo "Killing process $PID ..."
                kill -9 $PID
        else
                echo "$Application_Name Program is not running. Nothing to kill!"
        fi
        exit 1
elif [ "$1" = "status" ] ; then
        PIDLIST=`ps --width 8000 -fu $USER | grep -v "grep" | grep "$Main_Class" | cut -c 9-14`
        PID=`echo $PIDLIST | cut -c 1-5`
        if [ -n "$PID" ] ; then
                echo "$Application_Name Program is running (PID=$PID)"
        else
                echo "$Application_Name Program is not running."
        fi
        exit 1
elif [ "$1" = "run" ] ; then
        PIDLIST=`ps --width 8000 -fu $USER | grep -v "grep" | grep "$Main_Class" | cut -c 9-14`
        PID=`echo $PIDLIST | cut -c 1-5`
        if [ -n "$PID" ] ; then
                echo "$Application_Name Program is running (PID=$PID)"
                exit 1
        else
                for i in $Application_HOME/lib/*.jar
                do
                        if [ "$i" != "$Application_HOME/lib/*.jar" ] ; then
                                if [ -z "$LCP" ] ; then
                                        LCP=$i
                                else
                                        LCP="$i":"$LCP"
                                fi
                        fi
                done
                LCP=$Application_HOME/conf/:$LCP
                Application_CMD="$JAVA_HOME/bin/java -classpath $LCP:$Application_HOME/resource $Main_Class"
                echo $Application_CMD
                $Application_CMD
        fi
elif [ "$1" = "start" ] ; then
        PIDLIST=`ps --width 8000 -fu $USER | grep -v "grep" | grep "$Main_Class" | cut -c 9-14`
        PID=`echo $PIDLIST | cut -c 1-5`
        if [ -n "$PID" ] ; then
                echo "$Application_Name Program is running (PID=$PID)"
                exit 1
        else
                for i in $Application_HOME/lib/*.jar
                do
                        if [ "$i" != "$Application_HOME/lib/*.jar" ] ; then
                                if [ -z "$LCP" ] ; then
                                        LCP=$i
                                else
                                        LCP="$i":"$LCP"
                                fi
                        fi
                done
                LCP=$Application_HOME/conf/:$LCP
                Application_CMD="$JAVA_HOME/bin/java -classpath $LCP:$Application_HOME/resource $Main_Class"
                echo "$Application_CMD > /dev/null &"
                $Application_CMD > /dev/null &
        fi
else
        echo "Usage: ( run | start | stop | status)"
        echo "Commands:"
        echo "  run               Run $Application_Name program in current console"
        echo "  start             Start $Application_Name program as background process"
        echo "  stop              Stop $Application_Name program"
        echo "  status            Show the status of $Application_Name program"
        exit 1
fi

 

把 stdout 送到 /dev/null(无底洞) 里面,就不会输出到前台。

2.这是直接输出到控制台,是上面.sh的简化版
Application_HOME="/data/onepns/docroot/SMPP_HPNS/PCRF_SMS_Mediator"
JAVA_HOME="/usr/java/default/"


#-------------- Simple Grep -----------------------------
if [ "$1" = "stop" ] ; then
		echo "Stopping SMPPModule Program ..."
		PIDLIST=`ps --width 2000 -fu $USER | grep -v "grep" | grep "$Application_HOME" | cut -c9-14`
		PID=`echo $PIDLIST | cut -c0-5`
		if [ -n "$PID" ] ; then
			echo "Killing process $PID ..."
			kill -9 $PID
		else
			echo "PCRF_SMS_Mediator Program is not running. Nothing to kill!"
		fi
		exit 1

elif [ "$1" = "status" ] ; then
		PIDLIST=`ps --width 2000 -fu $USER | grep -v "grep" | grep "$Application_HOME" | cut -c9-14`
		PID=`echo $PIDLIST | cut -c0-5`
		if [ -n "$PID" ] ; then
			echo "PCRF_SMS_Mediator Program is running (PID=$PID)"
		else
			echo "PCRF_SMS_Mediator Program is not running."
		fi
		exit 1
fi


#-------------- The part below need java ---------------------
for i in $Application_HOME/lib/*.jar
do
  # if the directory is empty, then it will return the input string
  # this is stupid, so case for it
  if [ "$i" != "$Application_HOME/lib/*.jar" ] ; then
    if [ -z "$LCP" ] ; then
      LCP=$i
    else
      LCP="$i":"$LCP"
    fi
  fi
done

LCP=$Application_HOME/conf/:$LCP


echo "----------------------------------------"
echo Using JAVA_HOME: $JAVA_HOME
echo Using Application_HOME: $Application_HOME
echo "----------------------------------------"

#Application_CMD="$JAVA_HOME/bin/java -classpath $LCP com.pccwmobile.Test"
Application_CMD="$JAVA_HOME/bin/java -classpath $LCP:$Application_HOME/resource com.pccwmobile.pcrf.notification.main.PCRFNotificationMain"

echo $Application_CMD
$Application_CMD
 
分享到:
评论

相关推荐

    LINUX超强归纳总结秘籍 [华为内部培训文档]

    ### Linux超强归纳总结秘籍 —— 华为内部培训文档解析 #### 1. 命令行操作及常用命令使用 ##### 1.1 Shell简介 - **定义**: Shell 是用户与 Linux 操作系统之间的交互接口。 - **类型**: Linux 支持多种 Shell,...

    shell 脚本shell 脚本shell 脚本

    根据提供的文件内容,我们可以归纳出该脚本的主要功能与实现逻辑。这段脚本涉及到了 shell 编程的基础知识,如变量定义、函数定义、条件语句、循环结构以及一些常用的 Linux 命令等。接下来将对这些知识点进行详细的...

    linux进程通信[归纳].pdf

    《Linux进程通信[归纳].pdf》一书是针对Linux系统环境下C语言编程的详细指南,旨在帮助开发者深入理解和掌握Linux进程通信技术。该书结合作者的实战经验,以丰富的实例和详细的注释,阐述了Linux C程序设计的核心...

    shell脚本练习题

    根据提供的文件内容,我们可以归纳出一系列与Shell脚本相关的知识点,包括如何编写基本的脚本来完成特定任务,例如处理文件、目录操作、条件判断、循环结构等。下面将逐一解析这些练习题涉及的关键知识点。 ### ...

    安装大型Linux集群[归纳].pdf

    这篇归纳涵盖了从硬件配置到软件安装的全过程,适合用于大型Linux集群的规划和实施。 首先,硬件配置是集群搭建的基础,包括理解架构、规划逻辑网络设计、设置终端服务器以及更新固件等关键环节。在物理设计阶段,...

    Linuxshell大作业[归纳].pdf

    《Linux Shell编程实现用户管理系统》 在Linux操作系统中,Shell扮演着用户与系统交互的重要角色,它是一种命令解释器,同时也是强大的编程环境。这篇大作业主要涉及的是利用Shell编程来实现一个用户管理系统的功能...

    linux上脚本获取svn项目代码,编译后启动java项目

    1,新建目录(如果有老的目录,则移除掉) 2,从svn获取项目代码,并归纳好目录 3,编译项目代码 4,启动项目 打开文件 配置好各种信息 执行 sh script start 即可

    LinuxBashShellScriptForOps:用于 Ops 和 Devops 的 Linux Bash Shell 脚本和 Python 脚本

    此项目是对在Linux运维工作所能用到的Shell脚本和Python脚本的归纳和总结。 大部分源码均出自生产系统并经过比较严谨的测试,少部分脚本是用于学习或者测试目的。 遵循实用并尽可能的pythonic的原则。 为什么有...

    linuxshell基础[归纳].pdf

    Linux Shell是操作系统用户界面的重要组成部分,它是一个命令解释器,负责将用户在终端输入的命令转化为操作系统内核能...通过熟练运用Shell,用户可以更高效地管理文件、编写脚本、自动化任务,进一步提升工作效率。

    proeforlinux安装教程[归纳].pdf

    以下是对"proeforlinux安装教程[归纳].pdf"的详细解读,帮助你了解如何在Linux系统上安装ProE。 1. **安装csh**:ProE需要csh(C Shell)作为其交互式命令行环境。在Linux终端中,使用`sudo apt-get install csh`...

    suselinux系统备份恢复配置[归纳].pdf

    本文将深入探讨如何配置SUSE Linux系统的备份与恢复,主要依据"SUSELINUX系统备份恢复配置[归纳].pdf"文档中的内容。 首先,我们需要安装`rear`(Reliable And Easy Backup)软件包。`rear`是一款开源的备份和恢复...

    Linux上搭建JavaWeb服务器[归纳].pdf

    总结来说,搭建Linux上的Java Web服务器涉及多个步骤,包括安装JDK、Tomcat、Mysql,以及配置环境变量和启动脚本。正确执行这些步骤,你就可以在Linux系统上拥有一个功能完备的Java Web服务器,能够支持各种Web应用...

    linux实战VSFTP[归纳].pdf

    - 要让VSFTPD在系统启动时自动运行,可以将启动命令添加到`/etc/rc.local`或创建自定义的启动脚本。 5. **限制用户活动**: - 使用`chroot`功能,可以将用户限制在自己的主目录内,避免对系统造成潜在危害。 6. ...

    LINUX下的REDMINE搭建[归纳].pdf

    在Linux环境下搭建Redmine是一个涉及多个步骤的过程,主要涵盖了Ruby的安装、RubyGems的安装、Rails框架的安装、MySQL数据库的配置以及Redmine本身的安装和配置。以下是对这些步骤的详细说明: **一、Ruby的安装** ...

    用于做统计代码生成,统计iOS和Android归纳整理的一系列脚本.zip

    操作系统:LInux、IOS、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络...

    linux命令.txt

    根据提供的文件信息,我们可以归纳出以下与Linux命令相关的知识点: ### Linux系统命令基础 #### 文件权限设置 在Linux系统中,文件的权限管理是至关重要的。`chmod` 命令用于更改文件或目录的权限。 **示例**: `...

Global site tag (gtag.js) - Google Analytics