Nov 22
DynaSvr 的作者是国内某著名软件论坛的 acamar 。初衷是为了将一个 Java 程序作成系统服务。最后改进了一下,可以支持以下功能:
- Win32 服务的删除、增加及启动、停止等控制
- Driver驱动程序的删除及启动、停止等控制
- 作为服务程序的调入部分,将任何可执行文件作成自定义的 Windows 服务
DynaSvr 在 Visual Studio 98 下开发,代码简洁,占内存小,执行速度快,绿色程序,不用安装,运行后缩小成系统栏图标。
NT 服务控制程序 V1.0
NT Service Controller V1.0
免费软件
举例:安装并测试 Dynaweb IPS
1. 安装服务
A) 运行 DynaSvr.exe,输入服务名及服务的可执行程序,选择服务的启动方式,
如果选择 Allow service to interactive with desktop, 则服务运行后,
可执行程序的窗口会弹出。
B) 点击“install service”,如果安装成功,服务将出现在安装服务的列表中。
C) 本服务控制软件可以安装成一个服务,安装时,服务名可以任意指定,可执行
文件名请选择 DynaSvr.exe 的全路径名。如:
d:\devstudio\DynaSvr\DynaSvr.exe
安装本服务程序后,参照下面的做法配置你自己的服务。
2. 设置配置文件 DynaSvr.ini
DynaSvr.exe 需要一个与之相匹配的配置文件才能正确运行:
配置文件名为与 DynaSvr.exe 在同一目录,文件名与 DynaSvr.exe
的文件名一样,扩展名为 .ini,如:DynaSvr.ini。ini 格式详见
附带的示范文件。如:
DYNAWEB_RUNNING_DIR : 运行目录,指向 Java 服务主程序的主目录。如:
/usr/local/enhydra3.1
DYNAWEB_CMD : 运行命令行,输入全称的 Java 服务程序启动命令。如:
/bin/java com.lutris.multiServer.MultiServer /usr/local/enhydra3.1/multiserver.conf
DYNAWEB_LOG : 调试信息开关。可选 TRUE/FALSE
DYNAWEB_LOG_FILE : DynaSvr 运行调试信息,如果不设置该环境标量,
调试信息将不输出。如果设置,请指向全称的文件名,如:
/usr/local/enhydra3.1/logs/DynaSvr.log
3. 其他信息
当需要查看 Java 命令行输出屏幕时,可以在启动时通过设置 NT 服务的
允许桌面交互”,即 "Allow interactive with desktop" 来查看输出信息。
利用该程序,可以将任意的 Java 命令行程序转变为 NT 的服务。
在下面平台上测试通过:
. Enhydra 3.1 Java/XML Application Server
. JBoss Application Server
. NotePad
. ActiveMovie
.....等等
实例:将 Notepad.exe 作成系统服务
1. 将 DynaSvr.exe 和 DynaSvr.ini 复制到一个目录中,例如:c:\notepad\
2. 定制 DynaSvr.ini 以让 DynaSvr.exe 在服务启动和停止时知道如何处理 notepad.exe
[NT_SERVICE_CONTROLLER]
DYNAWEB_RUNNING_DIR=c:\notepad
DYNAWEB_CMD=c:\windows\notepad.exe
DYNAWEB_LOG=FALSE
DYNAWEB_LOG_FILE=c:\notepad\notepad.log
3. 执行 DynaSvr.exe,安装一个新的服务叫 Notepad Service
- 服务名:输入 Notepad Service
- 可执行程序名:输入 c:\notepad\DynaSvr.exe
- 选择服务的启动类型:一般只能在 自动/手工/禁用 中选择
点击“确定安装”
此时,一个新的服务 Notepad Service 就创建了。
4. 可以通过 Windows 的 Services 进行 Notepad Service 的启动停止,也可以直接通过 DynaSvr 进行服务的控制。
与 DynaSvr 类似的程序还有 AppToService (命令行方式,售价 400 美金)、 AutoService (利用微软的 srvany.exe ,图形界面)以及在 Hack 界广泛流传的 NTService (下载包内含详细使用说明,与 DynaSrv 极为类似,但是配置好 INI 文件后可以全命令行加载,方便远程操作)。
04.30 新增 Bitsum 的命令行工具:makeservice,有 32 位和 64 位两个版本。