中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-13 19:36
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]关于用runassvr生成同一程序不同实例的疑问
楼 主 [求助]关于用runassvr生成同一程序不同实例的疑问 发表于 2008-08-21 17:03 ·  中国 上海 电信张江机房
初级用户
★★
积分 150
发帖 68
注册 2007-04-26 00:18
UID 86476
性别 男
状态 离线
不知道该怎么表达,标题可能有点模糊.
情况是这样的,我这边有一个第三方开发的程序,可以根据配置文件设置不同的监听端口.比如
APPFolder1 --
|-- APP.exe 程序本身
|-- App.ini 配置文件,设置端口等等
|-- Appmsg.dat 程序启动时候读取的一些消息文本.
|-- 其他
APPFolder2 --
|-- APP.exe 程序本身
|-- App.ini 配置文件,设置端口等等
|-- Appmsg.dat 程序启动时候读取的一些消息文本.
|-- 其他
两个目录除了App.ini中的配置不一样,其他都是一样的.

出去维护方便考虑,我想用白杨大侠的runassvr来将这个APP.exe做成服务形式,这样可以远程管理,但是问题出来了,安装成服务之后启动的时候提示找不到APPmsg.dat文件,经测试应该是路径的问题,因为App.exe在启动时会在自身的目录下找Appmsg.dat文件,我曾经想把路径放到系统path变量中,但是不行.而且就算成功了,接下来要loading App.ini文件,这个时候程序不可能判断应该读取哪个目录下的App.ini了.
然后我尝试了一个p处理:比如我要启动APPFolder1中的服务:
d:
cd APPFolder1
APP.exe
保存到start1.bat中,然后用runassvr将start1.bat做成服务,这样启动是可以了,但是没法关闭app.exe......
不知道坛子里的大侠有没有什么妙招?

PS:关于runassvr,请看http://www.cn-dos.net/forum/viewthread.php?tid=21426&fpage=1&highlight=%E6%9C%8D%E5%8A%A1

[ Last edited by picat on 2008-8-21 at 05:41 PM ]
2 发表于 2008-08-21 17:31 ·  新加坡
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
把批处理的内容改成这样行吗?
d:
cd APPFolder1
start APP.exe
3 发表于 2008-08-21 17:33 ·  中国 上海 电信张江机房
初级用户
★★
积分 150
发帖 68
注册 2007-04-26 00:18
UID 86476
性别 男
状态 离线
Originally posted by HAT at 2008-8-21 17:31:
把批处理的内容改成这样行吗?
d:
cd APPFolder1
start APP.exe



不行,我之前已经试过了.
4 发表于 2008-08-21 17:53 ·  新加坡
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
停掉服务或者杀进程可以吗?
5 发表于 2008-08-21 18:05 ·  中国 上海 电信张江机房
初级用户
★★
积分 150
发帖 68
注册 2007-04-26 00:18
UID 86476
性别 男
状态 离线
Originally posted by HAT at 2008-8-21 17:53:
停掉服务或者杀进程可以吗?


我说的关闭就是net stop或者用服务管理器关闭啊
杀进程肯定是可以的,但是这就失去了做成服务的意义了啊
6 发表于 2008-08-21 20:06 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
net stop或者sc stop的时候,有没有报错信息?

SUN公司(其它牛X公司也类似)应该算不错吧,它的产品有时候也出现这个问题,只能杀进程。
7 发表于 2008-08-22 10:39 ·  中国 上海 电信张江机房
初级用户
★★
积分 150
发帖 68
注册 2007-04-26 00:18
UID 86476
性别 男
状态 离线
我昨天查看了一下进程情况,我这样做法(把start1.bat做成服务),进程里加载的是cmd.exe,再由它来启动start1.bat,然后start1.bat再启动app.exe,所以net start是没问题的,但是net stop的时候(状态都是正常的,没有报错),它仅仅是吧cmd.exe这个进程kill了,而app.exe依然运行着,所以会有这种情况.
昨天我在HAT你的群里已经咨询过了,似乎没有很好的解决方法.
论坛跳转: