在很多情况下,特别是集群规模比较大时,我们希望服务器操作系统启动时,能够自动启动部署在服务器中的O2OA服务。本文主要阐述如何将O2OA的启动脚本注册成为操作系统的服务,以实现操作系统启动时自动启动O2OA相关的服务。
一、先决条件:
1、O2Server服务器正常运行,系统安装部署请参考文档《如何在服务器上安装部署O2OA》
2、以拥有管理员权限的用户账号登录O2OA(翱途)开发平台,如:xadmin
在Windows操作系统环境的安装部署文件中,我们已经准备好了实现服务器随操作系统自动启动的命令脚本:service_windows.bat ,脚本内容如下:
@echo off cd "%~dp0" if not "%1" == "install" ( if not "%1" == "uninstall" ( if not "%1" == "start" ( if not "%1" == "stop" ( echo service_windows.bat install ^| uninstall ^| start ^| stop echo depends on Microsoft.NET Framework 4 goto out )))) if not exist "%~dp0local" ( md "%~dp0local" ) echo ^<?xml version="1.0" encoding="GBK" ?^> > "%~dp0localservice.xml" echo ^<configuration^> >> "%~dp0localservice.xml" echo ^<id^>O2SERVER^<^/id^> >> "%~dp0localservice.xml" echo ^<name^>O2SERVER SERVICE^<^/name^> >> "%~dp0localservice.xml" echo ^<description^>O2OA Platform Service.^<^/description^> >> "%~dp0localservice.xml" echo ^<executable^>"%~dp0start_windows.bat"^</executable^> >> "%~dp0localservice.xml" echo ^<log mode="none"^/^> >> "%~dp0localservice.xml" echo ^</configuration^> >> "%~dp0localservice.xml" copy "%~dp0commonswinsw.exe" "%~dp0localservice.exe" "%~dp0localservice.exe" %1 :out
脚本使用winsw.exe 对 java封装来实现将O2OA的启动命令写入注册表,成为Windows服务。
执行service_windows.bat命令需要依赖于Microsoft.NET Framework 4,如果操作系统没有预先安装需要进行手动安装Microsoft.NET Framework 4框架。
命令执行参考示例如下:
.service_windows.bat install | uninstall | start | stop
执行安装服务的示例如下:
.service_windows.bat install
执行卸载和取消服务注册的示例如下:
.service_windows.bat uninstall
执行启动服务的示例如下:
.service_windows.bat start
执行停止服务的示例如下:
.service_windows.bat stop
Linux操作系统上是可以通过systemd实现启停服务的注册操作的,可以将O2OA的启动命令作为服务加入到systemd。
在Linux操作系统环境的O2OA安装文件中,我们准备了 service_linux.sh 用来将O2OA启停命令注册为操作系统的服务。
./service_linux.sh serviceName startScriptFile
serviceName:服务的名称
startScriptFile:启动脚本。在Linux环境中,O2OA的启动脚本默认是start_linux.sh。考虑到可能需要修改脚本,比如需要设置-Xmx和-Xms以达到对JVM可使用内存的控制,可以拷贝一个start_linux.sh脚本重命名为 start.sh,修改后再将其注册为Linux的系统服务:
./service_linux.sh myo2server start.sh
执行后会在/etc/systemd/system目下创建myo2server.service,这样O2OA的启动服务已经加入到systemd中成为操作系统服务了。此时,我们可以通过如下命令来管理这个服务的启动方式。
加入开机自启动
systemctl enable myo2server
退出开机自启动
systemctl disable myo2server
查看服务执行状态
systemctl status myo2server
启动服务
systemctl start myo2server
停止服务
systemctl stop myo2server
重启服务
systemctl restart myo2server
以上内容主要讲述如何实现O2OA随操作系统自动启动,避免每次都需要人工执行启动命令,希望对您有帮助。