Library: Util
Package: Windows
Header: Poco/Util/WinService.h
Description
This class provides an object-oriented interface to the Windows Service Control Manager for registering, unregistering, configuring, starting and stopping services.
This class is only available on Windows platforms.
Member Summary
Member Functions: displayName, getDescription, getFailureActions, getStartup, isRegistered, isRunning, isStopped, name, path, registerService, setDescription, setFailureActions, setStartup, start, stop, unregisterService
Nested Classes
struct FailureAction
Types Aliases
FailureActionTypeVector
using FailureActionTypeVector = std::vector < FailureActionType >;
FailureActionVector
using FailureActionVector = std::vector < FailureAction >;
Enumerations
FailureActionType
Startup
Constructors
WinService
WinService(
const std::string & name
);
Creates the WinService, using the given service name.
WinService
WinService(
SC_HANDLE scmHandle,
const std::string & name
);
Creates the WinService, using the given connection to a Windows Service Manager and the given service name.
The class will close the given scmHandle on destruction
Destructor
~WinService
~WinService();
Destroys the WinService.
Member Functions
displayName
std::string displayName() const;
Returns the service's display name.
getDescription
std::string getDescription() const;
Returns the service description from the registry.
getFailureActions
FailureActionTypeVector getFailureActions() const;
Returns the Failure Actions for the service.
getStartup
Startup getStartup() const;
Returns the startup mode for the service.
isRegistered
bool isRegistered() const;
Returns true if the service has been registered with the Service Control Manager.
isRunning
bool isRunning() const;
Returns true if the service is currently running.
isStopped
bool isStopped() const;
Returns true if the service is currently stopped.
name
const std::string & name() const;
Returns the service name.
path
std::string path() const;
Returns the path to the service executable.
Throws a NotFoundException if the service has not been registered.
registerService
void registerService(
const std::string & path,
const std::string & displayName
);
Creates a Windows service with the executable specified by path and the given displayName.
Throws a ExistsException if the service has already been registered.
registerService
void registerService(
const std::string & path
);
Creates a Windows service with the executable specified by path and the given displayName. The service name is used as display name.
Throws a ExistsException if the service has already been registered.
setDescription
void setDescription(
const std::string & description
);
Sets the service description in the registry.
setFailureActions
void setFailureActions(
FailureActionVector failureActions,
const std::string & command = "",
const std::string & rebootMessage = ""
);
Sets the Failure Actions for the service. If one of the Actions is SVC_RUN_COMMAND the command Parameter is added. If one of the Actions is SVC_REBOOT the Reboot Message is set.
setStartup
void setStartup(
Startup startup
);
Sets the startup mode for the service.
start
void start();
Starts the service. Does nothing if the service is already running.
Throws a NotFoundException if the service has not been registered.
stop
void stop();
Stops the service. Does nothing if the service is not running.
Throws a NotFoundException if the service has not been registered.
unregisterService
void unregisterService();
Deletes the Windows service.
Throws a NotFoundException if the service has not been registered.
Variables
STARTUP_TIMEOUT
static const int STARTUP_TIMEOUT;
REGISTRY_DESCRIPTION
static const std::string REGISTRY_DESCRIPTION;
REGISTRY_KEY
static const std::string REGISTRY_KEY;