Exemplo n.º 1
0
void WinService::Run()
{
	m_ThreadSign = true;
	ACE_NT_SERVICE_RUN (APP_NAME, SERVICE::instance(), ret);
	if (ret == 0)	//Failed to call
	{
		char buf[1024];
		ACE_OS::sprintf(buf, "Failed to call service: %d, %s", 
            GetLastError(), ACE_OS::dlerror());
		throw Exception(buf);
	}
}
Exemplo n.º 2
0
int
Options::run (int argc, ACE_TCHAR* argv[])
{
  SERVICE::instance ()->name (ACE_TEXT ("TAO_NT_Notify_Service"),
                              ACE_TEXT ("TAO NT Notify Service"));

  this->parse_args (argc, argv);

  if (opt_install && !opt_remove)
    return SERVICE::instance ()->insert (opt_startup);

  if (opt_remove && !opt_install)
    return SERVICE::instance ()->remove ();

  if (opt_start && opt_kill)
    print_usage_and_die ();

  if (opt_setargs)
    return SERVICE::instance ()->set_args (opt_args);

  if (opt_start)
    return SERVICE::instance ()->start_svc ();

  if (opt_kill)
    return SERVICE::instance ()->stop_svc ();

  if (opt_type)
    return SERVICE::instance ()->startup (opt_startup);

  // If we get here, we either run the app in debug mode (-d) or are
  // being called from the service manager to start the service.

  if (opt_debug)
    {
      SetConsoleCtrlHandler (&ConsoleHandler, 1);
      SERVICE::instance ()->svc ();
    }
  else
    {
      ACE_NT_SERVICE_RUN (service,
                          SERVICE::instance (),
                          ret);
      if (ret == 0)
        ORBSVCS_ERROR ((LM_ERROR,
                        ACE_TEXT ("%p\n"),
                        ACE_TEXT ("Couldn't start service")));
    }

  return 0;
}
Exemplo n.º 3
0
int
run_service (void)
{
#if defined (ACE_WIN32) && !defined (ACE_LACKS_WIN32_SERVICES)
  SERVICE::instance()->name (IMR_ACTIVATOR_SERVICE_NAME, IMR_ACTIVATOR_DISPLAY_NAME);
  ACE_NT_SERVICE_RUN (service, SERVICE::instance (), ret);

  if (ret == 0)
    ORBSVCS_ERROR ((LM_ERROR, "%p\n", "Couldn't start service"));

  return ret;
#else /* ACE_WIN32 */
  return 1;
#endif /* ACE_WIN32 && !ACE_LACKS_WIN32_SERVICES */
}
Exemplo n.º 4
0
int
Process::run (int argc, ACE_TCHAR* argv[])
{
  SERVICE::instance ()->name (ACE_TEXT ("Beeper"),
                              ACE_TEXT ("Annoying Beeper Service"));

  parse_args (argc, argv);

  if (opt_install && !opt_remove)
    return SERVICE::instance ()->insert (opt_startup);

  if (opt_remove && !opt_install)
    return SERVICE::instance ()->remove ();

  if (opt_start && opt_kill)
    print_usage_and_die ();

  if (opt_start)
    return SERVICE::instance ()->start_svc ();

  if (opt_kill)
    return SERVICE::instance ()->stop_svc ();

  if (opt_type)
    return SERVICE::instance ()->startup (opt_startup);

  // If we get here, we either run the app in debug mode (-d) or are
  // being called from the service manager to start the service.

  if (opt_debug)
    {
      SetConsoleCtrlHandler (&ConsoleHandler, 1);
      SERVICE::instance ()->svc ();
    }
  else
    {
      ACE_NT_SERVICE_RUN (Beeper,
                          SERVICE::instance (),
                          ret);
      if (ret == 0)
        ACE_ERROR ((LM_ERROR,
                    "%p\n",
                    "Couldn't start service"));
    }

  return 0;
}
Exemplo n.º 5
0
int
Process::run (int argc, ACE_TCHAR* argv[])
{
  SERVICE::instance ()->name (ACE_TEXT ("Beeper"),
                              ACE_TEXT ("Annoying Beeper Service"));

  parse_args (argc, argv);

  if (opt_install && !opt_remove)
    {
      if (-1 == SERVICE::instance ()->insert (opt_startup))
        {
          ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("insert")));
          return -1;
        }
      return 0;
    }

  if (opt_remove && !opt_install)
    {
      if (-1 == SERVICE::instance ()->remove ())
        {
          ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("remove")));
          return -1;
        }
      return 0;
    }

  if (opt_start && opt_kill)
    print_usage_and_die ();

  if (opt_start)
    {
      if (-1 == SERVICE::instance ()->start_svc ())
        {
          ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("start")));
          return -1;
        }
      return 0;
    }

  if (opt_kill)
    {
      if (-1 == SERVICE::instance ()->stop_svc ())
        {
          ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("stop")));
          return -1;
        }
      return 0;
    }

  if (opt_type)
    {
      if (-1 == SERVICE::instance ()->startup (opt_startup))
        {
          ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("set startup")));
          return -1;
        }
      return 0;
    }

  // If we get here, we either run the app in debug mode (-d) or are
  // being called from the service manager to start the service.

  if (opt_debug)
    {
      SetConsoleCtrlHandler (&ConsoleHandler, 1);
      SERVICE::instance ()->svc ();
    }
  else
    {
      ofstream *output_file = new ofstream("ntsvc.log", ios::out);
      if (output_file && output_file->rdstate() == ios::goodbit)
        ACE_LOG_MSG->msg_ostream(output_file, 1);
      ACE_LOG_MSG->open(argv[0],
                        ACE_Log_Msg::STDERR | ACE_Log_Msg::OSTREAM,
                        0);
      ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%T (%t): Starting service.\n")));

      ACE_NT_SERVICE_RUN (Beeper,
                          SERVICE::instance (),
                          ret);
      if (ret == 0)
        ACE_ERROR ((LM_ERROR,
                    ACE_TEXT ("%p\n"),
                    ACE_TEXT ("Couldn't start service")));
      else
        ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%T (%t): Service stopped.\n")));
    }

  return 0;
}
Exemplo n.º 6
0
int KSGProcess::run(int argc,char ** argv)
{
	KSG_SERVICE::instance()->name(ACE_TEXT("ykt_gateway"),
		ACE_TEXT("ykt_gateway"));
	parse_args(argc,argv);
	if(_opt_install && !_opt_remove)
	{
		KSGService * svr = KSG_SERVICE::instance();
		if(-1 == svr->insert(SERVICE_DEMAND_START))
		{
			ACE_OS::printf("install NT Service error[%d]!\n",ACE_OS::last_error());
			return -1;
		}
		return 0;
	}
	if(_opt_remove && !_opt_install)
	{
		if(-1 == KSG_SERVICE::instance()->remove())
		{
			ACE_OS::printf("remove from Service Manager error![%d]\n",ACE_OS::last_error());
			return -1;
		}
		return 0;
	}
	if(_opt_start && _opt_kill)
		print_usage();
	if(_opt_start)
	{
		ACE_OS::printf("正在启动前置机...\n");
		if(-1 == KSG_SERVICE::instance()->start_svc())
		{
			ACE_OS::printf("start service error![%d]\n",ACE_OS::last_error());
			return -1;
		}
		return 0;
	}
	if(_opt_kill)
	{
		ACE_OS::printf("正在停止前置机...\n");
		if(-1 == KSG_SERVICE::instance()->stop_svc())
		{
			ACE_OS::printf("stop service error![%d]\n",ACE_OS::last_error());
			return -1;
		}
		return 0;
	}
	if(_opt_debug)
	{
		// 直接启动
		SetConsoleCtrlHandler (&ConsoleHandler, 1);
		int ret = KSG_SERVICE::instance()->svc();
		//system("pause");
		return ret;
	}
	else
	{
		/*std::ofstream *output_file = new std::ofstream("ntsvc.log", std::ios::out);
		if (output_file && output_file->rdstate() == std::ios::goodbit)
			ACE_LOG_MSG->msg_ostream(output_file, 1);
		
		ACE_LOG_MSG->open(argv[0],
			ACE_Log_Msg::STDERR | ACE_Log_Msg::OSTREAM,
			0);

		ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%T (%t): Starting service.\n")));*/
		ACE_NT_SERVICE_RUN (ykt_gateway,KSG_SERVICE::instance (),
			ret);
		if(ret == 0)
		{
			ACE_OS::printf("Couldn't start service!\n");
		}
		else
		{
			ACE_OS::printf("Service exits [%d]!\n",ACE_OS::last_error());
		}
		return 0;
	}
	return 0;
}