中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 12:35
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,254 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]关于用runassvr生成同一程序不同实例的疑问
可打印版本  779 / 6
第1楼 picat 发表于 2008-08-21 17:03
初级用户 发帖 68 积分 150
[求助]关于用runassvr生成同一程序不同实例的疑问
不知道该怎么表达,标题可能有点模糊.
情况是这样的,我这边有一个第三方开发的程序,可以根据配置文件设置不同的监听端口.比如
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楼 HAT 发表于 2008-08-21 17:31
版主 发帖 5,017 积分 9,023
把批处理的内容改成这样行吗?
第3楼 picat 发表于 2008-08-21 17:33
初级用户 发帖 68 积分 150
Originally posted by HAT at 2008-8-21 17:31:
把批处理的内容改成这样行吗?



不行,我之前已经试过了.
第4楼 HAT 发表于 2008-08-21 17:53
版主 发帖 5,017 积分 9,023
停掉服务或者杀进程可以吗?
第5楼 picat 发表于 2008-08-21 18:05
初级用户 发帖 68 积分 150
Originally posted by HAT at 2008-8-21 17:53:
停掉服务或者杀进程可以吗?


我说的关闭就是net stop或者用服务管理器关闭啊
杀进程肯定是可以的,但是这就失去了做成服务的意义了啊
第6楼 HAT 发表于 2008-08-21 20:06
版主 发帖 5,017 积分 9,023
net stop或者sc stop的时候,有没有报错信息?

SUN公司(其它牛X公司也类似)应该算不错吧,它的产品有时候也出现这个问题,只能杀进程。
第7楼 picat 发表于 2008-08-22 10:39
初级用户 发帖 68 积分 150
我昨天查看了一下进程情况,我这样做法(把start1.bat做成服务),进程里加载的是cmd.exe,再由它来启动start1.bat,然后start1.bat再启动app.exe,所以net start是没问题的,但是net stop的时候(状态都是正常的,没有报错),它仅仅是吧cmd.exe这个进程kill了,而app.exe依然运行着,所以会有这种情况.
昨天我在HAT你的群里已经咨询过了,似乎没有很好的解决方法.
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023