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); } }
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; }
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 */ }
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; }
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; }
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; }