使用系统功能以正确的权限重新启动应用程序吗?

时间:2019-01-14 07:10:12

标签: c++ windows batch-file command-line

我正在尝试创建用C ++编写的程序的功能以重新启动自身。为此,我创建了一个批处理文件,该文件杀死正在运行的进程并再次启动它。因此,当程序需要重新启动时,它将调用系统函数来启动此.bat文件。

它在我的本地测试环境中运行良好,但应运行该程序的生产环境是Windows Server2012。在生产环境中,当我手动执行.bat文件(双击.bat文件)时,它运行良好-正在运行的程序被杀死,然后再次启动。问题在于,当程序调用系统函数以启动.bat时,该进程将被终止,但是当再次启动该程序时会出现很多错误(此程序用作TCP服务器-无法启动以在这种情况下“听”。

启动蝙蝠的程序中的代码如下:

system("restartGS.bat");

蝙蝠的内容如下:

taskkill /F /IM GameServer.exe
START GameServer.exe

正如@Gerhard Barnard在评论中所建议的,我尝试删除taskkill的/ F和start命令,如下所示(这给出了完全相同的问题):

taskkill /IM GameServer.exe && GameServer.exe

这是关于我在此处使用的逻辑的常见问题吗?我该怎么做才能解决此问题?

谢谢。

0 个答案:

没有答案