服务中启动一个exe程序,关机再开机,服务自启动成功了,但是不能自动启动exe程序

x-2010 2017-11-27 06:43:27
Windows 10 OS上写一个服务程序,再通过服务程序以进程的方式启动一个exe程序,后台运行,获取PC的接口数据。
流程大概就是,服务中启动一个exe程序,关机再开机,服务自启动是成功了,但是不能自启动写在服务中ServiceMain内的exe程序。手动启动服务,可以成功启动exe程序。

查了很多资料有以下说法:
1.因为exe程序是以一个进程的方式启动,关机后,进程就杀死了,再开机也不会自动重启,可是我的exe程序是放在ServiceMain中的,服务程序都自启动成功了,为什么在它里面运行的exe无法成功?
2.LOG每次到ServiceMain就断了,但每次手动去启动都能成功。

有以前遇到过类似情况的吗?会是什么原因呢?
...全文
1309 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
互牛 2021-02-27
  • 打赏
  • 举报
回复
系统启动的时候各项那啥是有顺序的。你把你的程序调成开机后多少时间再启动可能就好了,可能正好依赖了别的啥东西还没起来,所以导致启动不成功
x-2010 2017-11-28
  • 打赏
  • 举报
回复
顶。。。。。。
x-2010 2017-11-27
  • 打赏
  • 举报
回复
有没有可能exe程序写的有问题,导致无法启动?可是手动启动时,它正常启动且获取数据这些都一切正常。无法解释了,万能的log失灵了,坎坷。有没有正好遇到过这种情况的进来解答一下啊,给个思路也行啊。freshbird 困惑等待中......
x-2010 2017-11-27
  • 打赏
  • 举报
回复
ServiceMain代码如下,帮忙看下在关机再开机情况下这种写法是否有问题,手动去启动服务,这个外部exe是可以启动成功的:
void ServiceMain(int argc, char** argv)
{
	int error;
	WriteToLog("Service Main");
	ServiceStatus.dwServiceType =SERVICE_WIN32; //SERVICE_WIN32_OWN_PROCESS|SERVICE_INTERACTIVE_PROCESS;//SERVICE_WIN32;
	ServiceStatus.dwCurrentState =SERVICE_START_PENDING;
	ServiceStatus.dwControlsAccepted =SERVICE_ACCEPT_STOP |SERVICE_ACCEPT_SHUTDOWN ;//|SERVICE_ACCEPT_PAUSE_CONTINUE;
	ServiceStatus.dwWin32ExitCode = 0;
	ServiceStatus.dwServiceSpecificExitCode = 0;
	ServiceStatus.dwCheckPoint = 0;
	ServiceStatus.dwWaitHint = 0;

	hStatus = RegisterServiceCtrlHandler(ServiceName,(LPHANDLER_FUNCTION)ControlHandler);
	if (hStatus == (SERVICE_STATUS_HANDLE)0)
	{
		return;
	}
#if 0
	error = InitService();
	if (!error)
	{
		WriteToLog("InitService");
		ServiceStatus.dwCurrentState = SERVICE_STOPPED;
		ServiceStatus.dwWin32ExitCode = -1;
		SetServiceStatus(hStatus, &ServiceStatus);
		return;
	}
#endif	
	ServiceStatus.dwCurrentState = SERVICE_RUNNING;
	SetServiceStatus(hStatus, &ServiceStatus);
  
       installHelper.RunService(); // 这里启动我的exe
   
	while (ServiceStatus.dwCurrentState == SERVICE_RUNNING)
	{
        //installHelper.RunService();
		Sleep(SLEEP_TIME);
	}
	return;
}

6,849

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧