有个java程序需要定时重启一下,于是就利用宝塔的计划任务来完成定时的启动
#!/bin/bash
#
# 重启jar包程序
# 进程名
APP_NAME="app"
# jar包路径
APP_PATH="/www/app"
# 停止进程
PID=$(ps -ef | grep ${APP_NAME} | grep -v grep | awk '{print $2}')
if [ -n "$PID" ]; then
echo "Stopping ${APP_NAME} with pid ${PID} ..."
kill -9 ${PID}
fi
# 启动进程
echo "Starting ${APP_NAME} ..."
cd ${APP_PATH}
nohup java -Xmx50g -Xms50g -jar *.jar --spring.config.location=/www/wwwroot/dockerfile/wvp/config/config.yml > out.log 2>&1 &
脚本中首先获取程序的进程 ID (PID),然后使用 kill 命令来结束该进程。如果没有找到程序进程则不执行结束进程操作。
然后,脚本进入到程序的路径下,使用 nohup 命令将程序以后台方式启动,并将输出重定向到 /dev/null 中,
从而确保程序在后台运行并且不会受到终端会话退出的影响。
最后,保存脚本并使用 crontab 命令设置定时执行。你可以通过以下命令来设置每天早上 4 点重启程序:
```bash
0 4 * * * /path/to/restart.sh
```