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