crontab以意外的方式执行脚本

时间:2019-08-30 11:53:57

标签: shell

我正在使用此脚本启动应用程序:

#!/usr/bin/env bash

# 当使用未初始化的变量时,程序自动退出
# 也可以使用命令 set -o nounset
set -u

# 当任何一行命令执行失败时,自动退出脚本
# 也可以使用命令 set -o errexit
set -e

set -x

JAVA_HOME="/opt/dabai/tools/jdk1.8.0_211"
APP_HOME="/data/jenkins/soa-robot-service"
APP_NAME="soa-robot-service-1.0.0-SNAPSHOT.jar"

count=`ps -ef | grep ${APP_NAME} | grep -v "grep" | wc -l`
if [[ ${count} -lt 1 ]]; then
  cd ${APP_HOME}
  echo "Process terminal by OS" >> ${APP_HOME}/autostart.log
  nohup ${JAVA_HOME}/bin/java -Xmx440M -Xms128M -jar \
  -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt \
  -Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=5009 \
  ${APP_HOME}/${APP_NAME} >> /dev/null &
  sleep 5
else
  echo "process already exists!" >> ${APP_HOME}/autostart.log
fi

当我在终端中使用此脚本时,它工作正常。当应用程序关闭时,可以使用此脚本启动应用程序。当crontab在终端进程执行完该脚本以启动应用程序时,它显示“进程已存在!”,脚本中是否有任何缓存?如何解决此问题?这是我的crontab配置:

* * * * * root ( sleep 10; /data/jenkins/soa-robot-service/autostart.sh )

0 个答案:

没有答案