当前位置: 首页 > article >正文

linux startup.sh shutdown.sh (kkFileView)

linux启动脚本和关闭脚本startup.sh   shutdown.sh (kkFileView)

startup.sh


DIR_HOME=("/opt/openoffice.org3" "/opt/libreoffice" "/opt/libreoffice6.1" "/opt/libreoffice7.0" "/opt/libreoffice7.1" "/opt/libreoffice7.2" "/opt/libreoffice7.3" "/opt/libreoffice7.4" "/opt/openoffice4" "/usr/lib/openoffice" "/usr/lib/libreoffice")
FLAG=
OFFICE_HOME=
KKFILEVIEW_BIN_FOLDER=$(cd "$(dirname "$0")" || exit 1 ;pwd)
PID_FILE_NAME="kkFileView.pid"
PID_FILE="${KKFILEVIEW_BIN_FOLDER}/${PID_FILE_NAME}"
export KKFILEVIEW_BIN_FOLDER=$KKFILEVIEW_BIN_FOLDER
#
## 如pid文件不存在则自动创建
if [ ! -f ${PID_FILE_NAME} ]; then
  touch "${KKFILEVIEW_BIN_FOLDER}/${PID_FILE_NAME}"
fi
## 判断当前是否有进程处于运行状态
if [ -s "${PID_FILE}" ]; then
  PID=$(cat "${PID_FILE}")
  echo "进程已处于运行状态,进程号为:${PID}"
  exit 1
else
  cd "$KKFILEVIEW_BIN_FOLDER" || exit 1
  echo "Using KKFILEVIEW_BIN_FOLDER $KKFILEVIEW_BIN_FOLDER"
  grep 'office\.home' ../config/application.properties | grep '!^#'
  if [ $? -eq 0 ]; then
    echo "Using customized office.home"
  else
  for i in ${DIR_HOME[@]}
    do
      if [ -f "$i/program/soffice.bin" ]; then
        FLAG=true
        OFFICE_HOME=${i}
        break
      fi
    done
    if [ ! -n "${FLAG}" ]; then
      echo "Installing LibreOffice"
      sh ./install.sh
    else
      echo "Detected office component has been installed in $OFFICE_HOME"
    fi
  fi

  ## 启动kkFileView
  echo "Starting kkFileView..."
  nohup java -Dfile.encoding=UTF-8 -Dspring.config.location=../config/application.properties -jar kkFileView-4.2.1.jar > ../log/kkFileView.log 2>&1 &
  echo "Please execute ./showlog.sh to check log for more information"
  echo "You can get help in our official home site: https://kkview.cn"
  echo "If you need further help, please join our kk opensource community: https://t.zsxq.com/09ZHSXbsQ"
  echo "If this project is helpful to you, please star it on https://gitee.com/kekingcn/file-online-preview/stargazers"
  PROCESS=$(ps -ef | grep kkFileView | awk 'NR==1{print $2}')
  # 启动成功后将进程号写入pid文件
  echo "$PROCESS" > "$PID_FILE"
fi

shutdown.sh


#
KKFILEVIEW_BIN_FOLDER=$(cd "$(dirname "$0")" || exit 1 ;pwd)
PID_FILE_NAME="kkFileView.pid"
PID_FILE="${KKFILEVIEW_BIN_FOLDER}/${PID_FILE_NAME}"
export KKFILEVIEW_BIN_FOLDER=$KKFILEVIEW_BIN_FOLDER
#
## pid文件是否存在
if [ ! -e "$PID_FILE" ]; then
    echo "kkFileView.pid文件不存在!"
    exit 1
else
    ## 文件不为空代表程序正在运行,则循环关闭进程。
    if [ -s "$PID_FILE" ]; then
        # 读取pid文件内容,开启while循环读取每一行文本赋予给变量PID_FILE。
        cat "${PID_FILE}" | while read PID;do
            ## 如已读取完毕,则退出脚本。
            [ -z "$PID" ] && exit 2
            echo "正在停止进程:${PID}..."
            ## 正常停止进程
            kill -15 "${PID}" && echo "进程:${PID}停止成功!"
        done
        # 关闭所有进程后,重置pid。
        cat /dev/null > "$PID_FILE"
    else
        echo "kkFileView进程尚未运行!"
    fi
fi


http://www.kler.cn/a/394233.html

相关文章:

  • 14:30面试,14:08就出来了,面试问的有点变态呀。。。
  • 使用TC命令模拟弱网丢包
  • 注意力机制详解
  • 一网多平面
  • ajax中get和post的区别,datatype返回的数据类型有哪些?web开发中数据提交的几种方式,有什么区别。
  • 【Rust自学】5.3. struct的方法(Method)
  • HBase理论_HBase架构组件介绍
  • IEC61850服务分类说明
  • SpringBoot 3.3.5 试用CRaC,启动速度提升3到10倍
  • 【学习率】
  • 时间序列分析——移动平均法、指数平滑法、逐步回归法、趋势外推法等(基于Python实现)
  • SpringBoot(二十二)SpringBoot集成smart-doc自动生成文档
  • gorm使用注意事项
  • 轮转数组
  • 旅行照片 4.0 问题三、四
  • 【自用】0-1背包问题与完全背包问题的Java实现
  • 视频横屏转竖屏播放-使用人脸识别+目标跟踪实现
  • [自然语言处理] [AI]深入理解语言与情感分类:从基础到深度学习的进展
  • Unity自动LOD工具AutoLOD Mesh Decimator的使用
  • HarmonyOS开发 API 13发布首个Beta版本,部分已知的问题建议处理方案
  • 删除.svn版本控制文件夹后,文件夹上的svn图标仍然显示的问题
  • 使用etl工具kettle的日常踩坑梳理之二、从Hadoop中导出数据
  • 分糖果(条件分配)
  • Works With线上开发者大会将提供物联网行业深入的专业知识和技能
  • uniapp form表单校验
  • python爬虫获得店铺的所有商品