一、背景信息
geoserver运行时间比较长之后,比如十几天,就会出现请求地图数据响应特别慢或者无响应的情况,因此想把geoserver每天启动一遍,也就是startup.bat 和 shutdown.bat每天调用一遍。当然这只是权宜之计,并不是最好的解决方案。
定时启动任务,可通过两种方式
命令行
// 每天15:07:00执行 startup.bat 任务,任务名为 startup_task
schtasks /create /tn startup_task /tr D:\geoserver\bin\startup.bat /sc DAILY /st 15:07:00
// 删除 startup_task 任务
schtasks /delete /tn startup_task /f
// 每天15:08:00执行 shutdown.bat 任务,任务名为 shutdown_task
schtasks /create /tn shutdown_task /tr D:\geoserver\bin\shutdown.bat /sc DAILY /st 15:08:00
// 删除 shutdown_task 任务
schtasks /delete /tn shutdown_task /f
任务计划程序
![](https://i-blog.csdnimg.cn/blog_migrate/2ed70b025092ecdb65629a7aba8881a5.png)
二、中途碰到的问题及解决办法
2.1
2.1.1.问题:定时任务无法正常执行 startup.bat
![](https://i-blog.csdnimg.cn/blog_migrate/a41d52f06a63f4dba1e3fcb9b952107a.png)
2.1.2.分析过程
找不到 start.jar,打印一下路径看看
![](https://i-blog.csdnimg.cn/blog_migrate/d4fa00a31ded6c40860ef2c5a5737ac1.png)
![](https://i-blog.csdnimg.cn/blog_migrate/89df2c3d0cd1cec4ff8f10dd9e3dd501.png)
在定时任务调用 startup.bat 的情况下,所处的路径是 C:\Windows\system32,执行 cd "%GEOSERVER_HOME%" 并没有进入到 geoserver 目录,因此找不到 start.jar
2.1.3.解决办法
简单粗暴,我的geoserver放在D盘,在startup.bat 一开始将路径切到D盘,这样后面cd "%GEOSERVER_HOME%" 时就能正常进入 geoserver目录了
![](https://i-blog.csdnimg.cn/blog_migrate/b8195a2c9351692ff048996907c0a74a.png)
2.2
2.2.1问题:
执行 shutdown.bat 之后,startup.bat 和 shutdown.bat 的两个窗口都显示“请按任意键继续...”,窗口并没有关闭,导致后面到了任务计划时间,startup.bat 和 shutdown.bat 无法再次被调用。
2.2.2解决办法
在两个bat里的end 中删掉 pause
![](https://i-blog.csdnimg.cn/blog_migrate/de912b1a2237b719e4d71480e2f7ea68.png)
![](https://i-blog.csdnimg.cn/blog_migrate/fe91b374c6254e39baa17b47a19b5105.png)