first commit
This commit is contained in:
157
archiso/airootfs/home/smart/SmartOrganizer/common/MiaozhenProbe/install.sh
Executable file
157
archiso/airootfs/home/smart/SmartOrganizer/common/MiaozhenProbe/install.sh
Executable file
@@ -0,0 +1,157 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "\
|
||||
===================================================
|
||||
MiaozhenProbe Installation
|
||||
===================================================
|
||||
"
|
||||
|
||||
# 脚本所在目录 绝对路径
|
||||
ROOT_PATH="/home/smart/SmartOrganizer"
|
||||
. ${ROOT_PATH}/lib.conf
|
||||
|
||||
PACKAGE_PATH="/home/Miaozhen"
|
||||
PACKAGE_NAME="MiaozhenProbe"
|
||||
SERVICE_NAME="MiaozhenProbeService"
|
||||
|
||||
|
||||
CURRENT_VERSION=""
|
||||
TARGET_VERSION="${1}"
|
||||
|
||||
if [[ -z ${TARGET_VERSION} ]]; then
|
||||
echo "Argument: TARGET_VERSION is needed!"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
#version_compare()
|
||||
#{
|
||||
# source=(${1//./ })
|
||||
# target=(${2//./ })
|
||||
# for ((i=0; i<${#source[@]}; i++)); do
|
||||
# if [[ ${source[i]} == ${target[i]} ]]; then
|
||||
# continue
|
||||
# fi
|
||||
#
|
||||
# if [[ ${source[i]} -lt ${target[i]} ]]; then
|
||||
# echo -1
|
||||
# return
|
||||
# elif [[ ${source[i]} -gt ${target[i]} ]]; then
|
||||
# echo 1
|
||||
# return
|
||||
# fi
|
||||
# done
|
||||
# echo 0
|
||||
#}
|
||||
|
||||
#PACKAGE_URL="http://axis-config.oss-cn-beijing.aliyuncs.com/MiaozhenProbe/MiaozhenProbe.jar"
|
||||
|
||||
# Create working path
|
||||
#echo "Create working path ${PACKAGE_PATH}"
|
||||
|
||||
#mkdir -p ${PACKAGE_PATH}
|
||||
pushd ${PACKAGE_PATH} > /dev/null
|
||||
|
||||
if [[ -f ".version" ]]; then
|
||||
CURRENT_VERSION="$(cat .version)"
|
||||
fi
|
||||
|
||||
if [[ -n ${CURRENT_VERSION} ]]; then
|
||||
echo "current_version:"${CURRENT_VERSION}" target_version:"${TARGET_VERSION}
|
||||
if [[ $(version_compare ${CURRENT_VERSION} ${TARGET_VERSION}) != -1 ]]; then
|
||||
echo "No upgrade required"
|
||||
popd > /dev/null
|
||||
exit 2
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Upgrade start >>>"
|
||||
|
||||
# Download
|
||||
#echo "Downloading [ MiaozhenProbe.jar ] from [ ${PACKAGE_URL} ] ..."
|
||||
#wget -q ${PACKAGE_URL} -O ./${PACKAGE_NAME}.jar
|
||||
#echo "Download ... successed!"
|
||||
\cp -r ${PACKAGE_PATH}/repo/last/. ${PACKAGE_PATH}
|
||||
chmod og+x ${PACKAGE_NAME}.jar
|
||||
echo "USE_START_STOP_DAEMON=false" > ${PACKAGE_NAME}.conf
|
||||
|
||||
if [[ $(getSystemVersion ) -eq 6 ]]; then
|
||||
|
||||
# Add to system service and auto startup
|
||||
chkconfig ${SERVICE_NAME} off
|
||||
chkconfig --del ${SERVICE_NAME}
|
||||
rm -f /etc/init.d/${SERVICE_NAME}
|
||||
|
||||
echo "Register to system service ... successed!"
|
||||
ln -s /home/Miaozhen/${PACKAGE_NAME}.jar /etc/init.d/${SERVICE_NAME}
|
||||
chkconfig --add ${SERVICE_NAME}
|
||||
chkconfig ${SERVICE_NAME} on
|
||||
|
||||
echo "Register to auto start ... successed!"
|
||||
# startup
|
||||
echo "Start service ... successed!"
|
||||
# service ${SERVICE_NAME} restart
|
||||
|
||||
# set self-starting
|
||||
netstat -anp | grep ${SERVICE_NAME} &> /dev/null
|
||||
if [[ $? -ne 0 ]]; then
|
||||
cat > ${PACKAGE_PATH}/startup.sh <<EOF
|
||||
export JAVA_HOME=/opt/soft/java
|
||||
export PATH=$JAVA_HOME/bin/:$PATH
|
||||
nohup java -jar ${PACKAGE_PATH}/{PACKAGE_NAME}.jar > /dev/null 2>&1 &
|
||||
chmod 777 /home/Miaozhen/logs/*.log
|
||||
|
||||
EOF
|
||||
chmod og+x ${PACKAGE_PATH}/startup.sh
|
||||
echo "sh /home/Miaozhen/startup.sh" >> /etc/rc.local
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
# Add to system service and auto startup
|
||||
systemctl stop ${SERVICE_NAME}
|
||||
systemctl disable ${SERVICE_NAME}
|
||||
|
||||
cat > "/usr/lib/systemd/system/${SERVICE_NAME}.service" <<EOF
|
||||
#!/bin/sh
|
||||
[Unit]
|
||||
Description=${SERVICE_NAME}
|
||||
After=syslog.target network.target remote-fs.target nss-lookup.target
|
||||
[Service]
|
||||
Type=forking
|
||||
ExecStart=${PACKAGE_PATH}/${SERVICE_NAME}-start.sh
|
||||
ExecStop=${PACKAGE_PATH}/${SERVICE_NAME}-stop.sh
|
||||
PrivateTmp=true
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
cat > ${PACKAGE_PATH}/${SERVICE_NAME}-start.sh <<EOF
|
||||
#!/bin/sh
|
||||
export JAVA_HOME=/opt/soft/java
|
||||
export PATH=$JAVA_HOME/bin:$PATH
|
||||
nohup java -jar ${PACKAGE_PATH}/${PACKAGE_NAME}.jar > /dev/null 2>&1 &
|
||||
echo $! > /var/run/"${SERVICE_NAME}".pid
|
||||
EOF
|
||||
cat > ${PACKAGE_PATH}/${SERVICE_NAME}-stop.sh <<EOF
|
||||
#!/bin/sh
|
||||
PID=$(cat /var/run/"${SERVICE_NAME}".pid)
|
||||
kill -9 $PID
|
||||
EOF
|
||||
|
||||
chmod +x ${PACKAGE_PATH}/${SERVICE_NAME}-start.sh
|
||||
chmod +x ${PACKAGE_PATH}/${SERVICE_NAME}-stop.sh
|
||||
|
||||
systemctl enable ${SERVICE_NAME}
|
||||
systemctl start ${SERVICE_NAME}
|
||||
|
||||
echo "Register to auto start ... successed!"
|
||||
# startup
|
||||
echo "Start service ... successed!"
|
||||
# service ${SERVICE_NAME} restart
|
||||
|
||||
fi
|
||||
|
||||
# export version infomation
|
||||
echo "${1}" > .version
|
||||
echo "Done!"
|
||||
|
||||
popd > /dev/null
|
||||
Reference in New Issue
Block a user