Files
tms-arch-linux-lts-calamare…/archiso/airootfs/home/smart/SmartOrganizer/common/MiaozhenProbe/install.sh
2025-11-26 16:12:02 +08:00

157 lines
4.0 KiB
Bash
Executable File

#!/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