我在 Windows Server 2008 机器上运行着一个 JBoss 7.02 服务器。该服务器需要一直保持运行,但主机会时不时地重启,导致应用程序无法访问,直到我手动登录机器并再次运行它。
我需要一种方法,在计算机启动时立即启动服务器,而无需任何用户操作。我有一个 bat 文件,它清理部署文件夹,然后运行 standalone.bat。我们经常使用这个 bat 文件来运行服务器,不会出现问题。因此,我在任务计划程序中设置了一个任务来运行指向此 bat 文件的快捷方式。该任务设置为“计算机启动时”运行。重新启动主机导致 Windows 无法启动并丢失系统文件。
以下是 bat 文件的组成,存储在 jboss 服务器文件夹中:
set jboss=%CD%
cd /d %jboss%\standalone\tmp
for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)
cd %jboss%\standalone\deployments
del *.deployed
del *.failed
del *.isdeploying
del *.undeployed
call %jboss%\bin\standalone.bat
我的问题是... 1) 是什么原因导致失败? 2) 有没有更好或更可靠的方法在系统启动时运行 JBoss 服务器?
任何帮助都将受到赞赏。
答案1
我最终找到了解决问题的方法。可以将 JBoss 服务器配置为服务并设置为自动启动。具体步骤如下:
- 在 www.jboss.org/jbossweb/downloads 网站上,搜索“Jboss Web Native Connectors”的当前软件包,并下载适合您所用 Windows 操作系统的二进制文件。例如,如果当前软件包的版本为 2.0.10,则下载二进制文件 2.0.10-windows x64 的 zip 文件。
- 将下载的存档文件解压到 JBoss 根目录。例如:C:\jboss-as-7.1.1.Final。如果出现提示,请覆盖任何具有相同名称的现有文件。
- 使用文本编辑器打开 \bin 目录下的 service.bat 文件。将该文件的副本保存为 service.old,以便备份。
- 将 SVCNAME、SVCDISP 和 SVCDESC 属性设置为有意义的值。例如:
- 设置 SVCNAME=JBoss7server
- 设置 SVCDISP=JBoss 服务器用于 CSP 版本 X
- 设置 SVCDESC=JBoss AS 7.1.1.Final - Windows x64 - CSP 版本 X
- 通过在行首添加 REM 来注释掉 JAVA_OPTS 属性。例如:
- REM 设置 JAVA_OPTS=-X
- 将所有出现的 run.bat 替换为 standalone.bat。
- 将所有出现的 run.log 替换为 standalone.log。
- 替换所有出现的命令
- 调用关机-S <.s.lock>>shutdown.log 2>&1
- 使用此命令
- 调用 jboss-cli.bat --connect --command=:shutdown >> shutdown.log 2>&1
- 保存修改后的service.bat文件。
- 启动 Windows 命令行并执行以下命令,安装并注册“JBoss Server for CSP release X”服务:
- 服务.bat安装
- 打开服务器管理器 > 配置 > 服务并验证“JBoss Server for CSP release X”服务是否已注册。
- (可选)将此服务的启动类型更改为自动。
- 启动“JBoss Service for CSP release X”服务。
- 检查日志文件 \bin\standalone.log 以验证 JBoss 服务器是否成功启动。