start.sh 启动命令:./start.sh start/stop/restart xxxx.jar
#!/bin/sh
startLogDir="temp"
if [ ! -d "$startLogDir" ];then
mkdir $startLogDir
fi
###
SERVICE_NAME="$2"
#ENVFILE="env"
PIDFILE=temp/"$2"_"pid"
checkRunning(){
if [ -f "$PIDFILE" ]; then
if [ -z "`cat $PIDFILE`" ];then
echo "ERROR: Pidfile '$PIDFILE' exists but contains no pid"
return 2
fi
PID="`cat ${PIDFILE}`"
RET="`ps -p "${PID}"|grep java`"
if [ -n "$RET" ];then
return 0;
else
return 1;
fi
else
return 1;
fi
}
status(){
if ( checkRunning );then
PID="`cat $PIDFILE`"
echo "'$SERVICE_NAME' is running (pid '$PID')"
exit 0
fi
echo "'$SERVICE_NAME' not running"
exit 1
}
#start
start(){
if ( checkRunning );then
PID="`cat $PIDFILE`"
echo "INFO: Process with pid '$PID' is already running"
exit 0
fi
#ENVIRONMENT="`cat ${ENVFILE}`"
java -jar -Xms128m -Xmx256m ${SERVICE_NAME} -XX:PermSize=128M -XX:MaxPermSize=256M >/dev/null 2>&1 &
echo $! > "${PIDFILE}";
}
#stop
stop(){
if ( checkRunning ); then
PID="`cat ${PIDFILE}`"
echo "INFO: sending SIGKILL to pid '$PID'"
kill -KILL $PID
RET="$?"
rm -f "${PIDFILE}"
return $RET
fi
echo "INFO: not running, nothing to do"
return 0
}
show_help() {
cat << EOF
Tasks provided by the sysv init script:
stop - terminate instance in a drastic way by sending SIGKILL
start - start new instance
restart - stop running instance (if there is one), start new instance
status - check if '$SERVICE_NAME' process is running
EOF
exit 1
}
# show help
if [ -z "$1" ];then
show_help
fi
case "$1" in
status)
status
;;
restart)
if ( checkRunning );then
$0 stop ${SERVICE_NAME}
echo
fi
$0 start ${SERVICE_NAME}
$0 status ${SERVICE_NAME}
;;
start)
start
;;
stop)
stop
exit $?
;;
*)
esac
开机自启:
把./start.sh 放到/etc/profile.d/
或者
自启/etc/rc.local
cd /home/
./sss.sh &
chmod 777 rc.local