Backgrounder

Introducing Active+ Software Services Utilities

Active+ Software has committed over the past years to developing a set of Service Utilities, helping administrators with their Windows NT, 2000, XP and 2003 servers and applications. Features have been shaped around recurring and growing needs for improved administration, platform stability, and reduced workload.

Our core idea has always been to use the very strengths of the Windows system internals to address those issues: by exploiting the Windows Services architecture.

So was started a family of award-winning Services utilities. Utilities that turn applications, batch files or custom code into Windows Services. Applications that securely run in the background as services, without requiring a user session. Applications and services that can be scheduled, monitored and rescued remotely using one effective centralized automation tool.

Today, Active+ Software utilities allow mission-critical applications to run as services on hundreds of thousands of strengthened Windows NT, 200x and XP systems, and provide improved administration. Whether on corporate or government NT boxes, in data centers, on developers' servers, or on IT professionals' workstations, they seamlessly blend into Windows, successfully doing their job so you forget about them.

Active+ Software Services Utilities:

  • Service+ Management console:
    Service+ is a must-have utility for all professionals using Windows NT, 2000, XP and 2003. Replaces the original Services management tool with same look and feel, and with dramatically improved administrative features: real time services status, multiple services selection for simultaneous control and edition, advanced sorting, remote services management, editable service dependencies, failed service termination - no need to reboot!
  • Service+ Command Line:
    A time-saver for administrators who manage Windows machines over a network. Allows simultaneous control and edition of services on any number of computers throughout a domain, using wildcards and command lines.
  • ServiceMill Services Utility:
    The fastest and easiest way to turn your Java, script code, batch files, graphical or console-based application into a native Windows Service. Run your mission-critical or server-client applications as services, without need of a user session. Hide your sensitive applications that run in the background as services, by logging off the desktop. Control, monitor and rescue your applications as easily and effectively as services (with ServiceKeeper).
  • ServiceMill Control:
    Turn you custom code into a native Windows Service. Run your VB or Delphi programs in the background through the process primary thread and benefit from the Event Log support. Start, stop, pause and terminate your code using the Service Control Program or the MMC snap-in.
  • ServiceKeeper Monitoring Utility:
    The ultimate answer to prevent crashing services and expensive server downtime. Provides centralized and powerful service administration tools that schedule services, detect failures using a wide variety of methods, notifies administrators through a selection of means, and recovers failed services using multiple methods. Remote administration and site-wide services monitoring available.
Registering your software: Trial versions of Active+ Software utilities are fully functional for a period of 30 days. You will need to download the software anew prior to entering the key. The key will be sent by email after completing your order.

Related Topics

Understanding Services

© 1997-2007 Active+ Software . All trademarks property of their owners. Send us feedback.


Service+

Introducing Service+

Users interacting daily with Windows can experience many circumstances where limitations with their standard interface lead to repetitive, or time-consuming tasks. This applies particularly to services and how they are managed through the standard console or SCP.

For instance, when a Windows service is not responding, the only option left may be to reboot the computer, something quite radical if the machine runs critical applications. Administration of services on multiple networked computers can also lead to having to log onto each computer individually, a process that could be shortened with centralized domain-wide commands using wildcards.

Considering that a typical Windows server includes up to a hundred services and multiplying this by the number of machines on the network, improving administration through productivity tools becomes a key factor for a successful deployment.

Service+ is a Windows services administration utility designed to provide administrators with an unmatched level of services control. It is delivered as a Microsoft Management Console tool for Windows NT, 2000, XP and 2003. The Service+ console is installed automatically during setup. Its features are supported evenly on all NT technology systems. Service+ is a substitute to the standard 'Services' management tool. The following table shows unique features Service+ adds to your administrative tools.

 | Service+ | Standard Windows Services SCP
 | Windows NT/W2K/XP | Windows XP | Windows 200x | Windows NT
Remote services administration | YES | YES | YES | NO
Manage services on several computers in one view | YES | NO | NO | NO
Creation of custom views showing only pertinent services | YES | NO | NO | NO
Terminate services | YES | NO | NO | NO
Real-time status display | YES | NO | NO | NO
Control services simultaneously | YES | NO | NO | NO
Edit properties simultaneously | YES | NO | NO | NO
Sort services by properties | YES | YES | YES | NO
Remove services | YES | NO | NO | NO
Install services | YES | NO | NO | NO
Visualize drivers status | YES | NO | NO | NO
Edit service dependencies | YES | NO | NO | NO
Monitoring and recovery | ServiceKeeper | YES | YES | NO
Attach debugger to services | YES | NO | NO | NO
Related products:
Service+ CL: The command line version of Service+ accepting wildcards to control services throughout domains.
ServiceMill : The fastest and easiest way to turn your Java, script code, batch files, graphical or console-based application into a native Windows Service. It includes Service+.
ServiceKeeper: The unique monitoring tool that schedules, monitors and rescues all Windows services and other resources on the network. It includes Service+.

Requirements:

Service+ is a native Unicode application supporting English, French and Korean. Minimum requirements:
  • Windows 2000, Windows XP (32-bit & 64-bit), Windows Server 2003 (32-bit & 64-bit), Windows Vista
  • 10 MB of hard disk space
Note: Available for x86 platforms, x64 platforms and Intel Itanium.

Installation:

Unzip svcplus.zip into a temporary directory, then run setup.exe and follow the instructions. Note that installing Service+ will not remove the original Services SCP from your system. Service+ also proposes an unattended install mode.

Licensing:
  • Single user
  • 10-user license
  • Site license (unlimited number of users in one physical location).
Contact us for specific / OEM licensing. Licensed users benefit from one-year free upgrades. Discounts apply for upgrades after the first year.
Note: Service+ is the management console for and delivered with ServiceMill and ServiceKeeper. You need not install or register it if you are using either one of those products.

Related Topics

Advanced monitoring of services and server resources with ServiceKeeper
Transforming any executable file into a service with ServiceMill
The Service+ console


The Service+ console

The Service+ management console

The purpose of a Service Control Program (SCP) is to issue commands to services through the Service Control Manager (SCM). Service+ is your enhanced SCP. The SCM remains the 'services.exe' that is part of your operating system.

Common commands applied to service processes are Start, Stop, Pause and Restart. To those, Service+ also adds the Kill (terminate un-responding service), Remove and Debug commands.

Service+ lets you manage services on computers part of your network through the Service+ MMC console. The Services node in the tree view (the left pane) regroups the services by computers.

The Service+ console can be launched in three different ways:

  • Clicking the Service+ shortcut on the desktop.
  • Through the Administrative Tools/Service+ menu.
  • or by typing "\\mycomputer\Program Files\Active+\Utilities\Service+\svcplus.exe" at the command prompt or the Start/Run menu.

The Service+ MMC console shows services from a view similar to that of the original Services SCP.

Service details view:

The icon preceding each service name indicates the real-time service condition:
Service running Paused service Status pending Monitored service Last rescue failed A failure was detected
  • Name: Character string. Stored inside the registry as the DisplayName parameter and edited using the Service+.
  • Description: Character string. Up to 1024-byte description of the service. Stored inside the registry as the Description parameter and edited using Service+.
  • Server: Displays the name of the computer on which the service is running.
  • Status: Displays whether a service is in Starting / Start pending / Started / Stop pending state. Service+ displays the actual service status in real time; you need not refresh the view.
  • Startup: Specifies automatic, manual or disabled service configuration. Stored inside the registry as the Start parameter and edited using Service+.
  • Short name: Service name identifying the service in the service database. This name is the key name of the service in the registry. It cannot be edited.
  • Account: Specifies which account the service runs in. Stored inside the registry as the ObjectName parameter and edited using Service+.
  • The service is dependent on: Specifies which services need to be started for the service to start. Stored inside the registry as the DependOnService parameter and edited using Service+. Note that the DependOnGroup parameter that specifies groups of dependent services (usually drivers) is not editable through Service+.
  • Dependent services are: Provides the list of the services that depends on the service. This means that the service must be running for the listed services to start.
  • Path: Specifies the path to service or driver executable file. Stored inside the registry as the ImagePath parameter and edited using Service+.
  • Process type: Specifies the type of service process. Stored inside the registry as the Type parameter and specified when creating a service with Service+ or ServiceMill.
  • Error control: Specifies how the process startup behaves when an error occurs. Stored inside the registry as the ErrorControl parameter and specified when creating a service with Service+ or ServiceMill. This parameter can only be edited from the registry (with caution).
  • CPU: Displays the service process CPU usage.
  • Mem Usage: Displays the service process physical memory usage.
  • VM Size: Displays the service process virtual memory usage.
  • Availablity: Displays the availability rate. The rate is calculated based on the amount of time the resource was up or down.
Note: Clicking a column header in the details pane will sort the items according to that column.

Actions:

Most actions can be carried out on multiple services simultaneously. Click on items from the service list in the details pane while holding down the Shift or Ctrl key to make your selection. Commands are accessible via the Action menu, using the toolbar or through a right-click on the selected services in the details pane.
Properties
Lets you edit the service properties, including the service dependencies.
Start
Starts a service that is stopped. All stopped dependent services will be started. To pass startup parameters to the service, press the shift key and the start button together.
Stop
Stops a service that is running. If another service is dependent on that service, it will also be stopped.
Pause
Pauses a service that is running (the process remains loaded). Pausing a service will also pause all services that depend on it. Note: Most services do not accept a Paused state. When you pause the Server service, only members of the computer's Administrator and of the Server Operators groups can connect to the server. Click on 'Start' to resume the service process.
Restart
Restarts a running service (Stop/Start). Restarting a service will restart all active services that depend on it. Restarting a service leaves dependent services unaffected.
Remove
Removes a service. The service must be stopped prior to removing it. Use extreme caution when using this function. Check you are not removing a service other services depend on. This functionality is available for services running locally only.
Kill
This functionality is very useful to terminate un-responding services without rebooting. You must only use this function when the stop service command is not working or is disabled. Be aware that dependent services will not be stopped and could crash. This functionality is available for services running locally only.
Attach debugger
If a debugger that supports "Just in time debugging" is installed on your system, you can use this function to launch the debugger and attach it the service process. (Visual C++ users: This is equivalent to msdev /p pid). This functionality is only available for services running on the local computer.
Select computer
This action is available when the Services node or Monitored Resources node of the console tree ( left pane) is selected. It lets you select a new computer, which services you want to manage. The computers must be in the same domain. You need administrator credentials on the remote machine to perform any of the available commands.
Add a new custom view
This action is available when the Services node or Monitored Resources node of the console tree ( left pane) is selected. It lets you create a new custom view under the node.
Add item(s) to the current view
This action is available when a view of the console tree ( left pane) is selected. It lets you add new items to the current view.
Delete the selected item(s) from the current view
This action is available when one or several items is selected in the details pane of the console tree ( right pane). It lets you remove the items from the current view. Items are removed from the view. They are not deleted. For instance a service would be removed from the current view but would remain on the computer it is installed.
Install a new ServiceMill service
This action is only available if you purchased the ServiceMill licence and installed ServiceMill. It lets you install a new service created with the help of ServiceMill. ServiceMill let's you run virtually any program or executable file as a service.
Startup parameters: Click on the Service/Start... menu or click SHIFT + the Start button [image] on the toolbar to pass on parameters to the service. If the service is a batch file running as a service using ServiceMill, this lets you specify parameters used by your batch commands.

Related Topics

Modifying console options


Modifying console options

To change the Service+ console options open the console and select the Service+ node on the tree view (left pane) then right-click and select properties.

  • Show the service+ icon on the task bar
    Checking this option adds the service+ icon to the task bar when Service+ is running.
  • Run Service+ when Windows starts
    If this option is checked Service+ will start automatically when a windows session is opened.
  • Use remote computer fast detection mode (PING)
    When this option is checked, Service+ first PINGs the remote computer before trying to connect to the service database. Doing this will avoid long waits if the computer is not started or not connected the network. Note that this mode will only work on a TCP/IP based network.

Related Topics

Service+ management console


Modifying Service Control Manager Security

Editing the Service Control Manager Security

To change the Service Control Manager Security, open Service+ and select the Service+ Administration Console node in the tree view (left pane). Then, right-click properties and select the Service Control Manager Security tab.

Note: This feature is only available on Windows 2003 SP1 or later.
  • Group and user names: lists the groups and users whose permissions to access the service control manager are defined below. Click on Add to add a new user or group to the list. To remove a user or group from the list, select it and click on Remove.
  • Permissions: lets you define the permissions for the groups and users listed above. Click on Reset to set the service control manager security to system default.

    The following rights can be set for the service control manager:
    • Full Control: The user or group has full access to the service control manager.
    • Connect to the Service Control Manager: Required to connect to the service control manager.
    • Create Service: Required to create a service object and add it to the database.
    • Enumerate Services: Required to list the services that are in the database.
    • Lock Service Database: Required to acquire a lock on the database (the service database must be locked, for instance, when changes on a service configuration are applied).
    • Query Service Database Lock Status: Required to retrieve the lock status information for the database.
    • Modify Last-known Good Configuration: Required to save the last-known good configuration.
    • Query Service Control Manager Security Descriptor: Required to display the service control manager security descriptor. If the user does not have this permission, he will not be able to display the Service Control Manager Security page.
    • Change Control Manager Security Descriptor: Required to change the service control manager security descriptor. If the user does not have this permission, he will not be able to save the changes made to the Service Control Manager Security page.
    • Change Control Manager Owner and Groups: Required to change the service control manager owner and groups.

Related Topics

Service Security


About custom views

Service+ proposes a unique feature, the custom views. You will use a custom view for grouping services you wish to manage or monitor based on your own specific criteria. You can create as many views as you want, each providing a selective list of services pertinent to a particular subject.

For instance you may create a view that gathers all the services collaborating to the success of a particular application. The view bellow gives a basic example of a view created for managing services related to a CRM application.

  • Views are customized by creating "resource selection filters". Each filter includes or excludes services from the view.
  • A single view can show services running on different computers on the network.
  • There are two types of views: The standard custom views and the computer views.

Related Topics

What is a computer view?
Create a custom view
Add items to a view
View properties
Delete a custom view


What is a computer view?

A computer view is a special custom view that shows all services running on one particular computer. Computer views are really not a new concept. It is a faster way to create a custom view specialized in managing services running on a particular computer.

The Local computer view is a computer view automatically created when you open Service+.

Computer views use a specific icon

A unique resource selection filter defines a computer view. It selects all services on one computer. For instance, the resource selection filter for the computer view showing the "Mailsvr01" server would look like this.

Changing the resource selection filter of a computer view changes it to a standard custom view and the icon changes as well to the standard custom view icon so you know you are not looking at all the services running on a particular computer.

Related Topics

Create a computer view
Editing resource selection filters
About custom views


Create a custom view

To create a custom view

1. Select the Services node in the tree view (left pane)

2. Right-click the Services node and select New/Add new custom view, or click the Add a new custom view icon [image] on the toolbar, or select the Action/New/Add new custom view menu. This will launch the new custom view wizard.

3. Enter a Name and a description for the view and click Next to proceed

You will be able to change those properties later on.

4. Select one of the choices and Click Next to proceed.

  • An Empty view
    If you want to create a view without editing the filters select this choice. You will be able to add and remove items from the view later on.
  • Edit resource selection filters
    Opt for this choice if you want to edit the resource selection filters now. Editing resource selection filters

Related Topics

Add items to a view
Editing resource selection filters
About custom views


Create a computer view

To create a computer view

1. Select the Services node in the tree view (left pane) of the console.

2. Right-click the Services node and select New/Add new computer view, or click the Add a new computer view icon [image] on the toolbar, or select the Action/New/Add new computer view menu.

3. Select the computer you wish to monitor.

4. Click OK and the view is automatically created. The view name has been set using the computer name. You can modify the view properties at any time.

Related Topics

What is a computer view?
Editing resource selection filters
About custom views


Add items to a view

A custom view is meant to only show services of your choice in the details pane (right pane). You have different options to add and remove items from a view.

To add items using Drag and drop

1. Select a view containing services you wish to add in the tree console. This can be a computer view for example.

2. Select in the details pane the services you want. Use Ctrl and Shift keys for selecting multiple services.

3. Drag and drop the selection over your view.

To add items using a menu or the Toolbar

1. Select the view you wish to add items to in the console tree.

2. Right-click the view node and select All tasks/Add item(s) to view, or click the Add item(s) to the current view icon [image] on the toolbar, or select the Action/All tasks/Add item(s) to view menu. This brings a window for selecting services.

3. Select a computer running the services you want to add to the view.

4. Select the services of your choice using the Ctrl and Shift keys for selecting multiple services.

To add items by modifying the resource selection filters

See Edit the resource selection filters.

Related Topics

Edit the resource selection filters
About custom views


Edit resource selection filters

Editing resource selection filters

When you add or delete items from a view using a menu, the toolbar or drag and drop, you actually add, remove or modify resource selection filters. It is also possible to add, remove or modify the filters directly.

To edit the resource selection filters

1. Select the view you wish to modify in the console tree.

2. Right-click the view node and select Properties, or select the Action/Properties menu, alternatively you can click the Properties icon [image] on the Toolbar. All bring the properties page for the view.

The current filters for this view are listed at the bottom of the page:

  • \\Monsvr01\CRM Data Store is a filter that adds the CRM service to the view
  • \\Mailsvr01\W3SVC is a filter that adds the IIS Web Server service to the view
  • \\Mailsvr01\SMTPSVC is a filter that adds the SMTP Service to the view

From this page you can Add, Delete or Modify the view's filters.

Related Topics

Add a resource selection filter
Modify a resource selection filter
Delete a resource selection filter
About custom views
Add items to a view


Add a resource selection filter

To add a new filter to the view

1. Select the view you wish to modify in the tree console.

2. Right-click the view node and select Properties, or select the Action/Properties menu or click the Properties icon [image] on the Toolbar. This brings the properties page for the view.

3. Click on the New filter icon at the top right corner of the filter list.

2. Directly type in the new filter or click on the browse button to select a computer.
When you select a computer Service+ creates automatically a filter that adds all the services using the * wildcard like in \\Mailsvr01\* .

You can edit this filter and change it to select a specific service or a group of services using the * wildcard again. For example you could select all services pertaining to the Disk Manager by specifying \\Mailsvr01\dm* as the Disk Manager services are dmserver and dmadmin.

Note: By default the services short name are used in the filters but this can be changed to the service display name in the properties page of the view.

If you check the exclude these resources option, the services will be excluded from the view instead of being added. For instance you could start from a computer view using the * wildcard and exclude services you do not wish to see in the view.

Note: "Including" filters show a yellow "+" icon on the left of the filter string. "Excluding" filters show a yellow "-" icon on the left of the filter string.

Related Topics

Modify a resource selection filter
Delete a resource selection filter
About custom views
Add items to a view


Delete a resource selection filter

To delete a resource selection filter

1. Select the view you wish to modify in the tree console.

2. Right-click the view node and select Properties, or select the Action/Properties menu or click the Properties icon [image] on the Toolbar. This brings the properties page for the view.

3. Select the filter you want to delete and click on the delete icon [image].

Related Topics

Add a resource selection filter
Modify a resource selection filter
About custom views
Add items to a view


Modify a resource selection filter

To modify a resource selection filter

1. Select the view you wish to modify in the tree console.

2. Right-click the view node and select Properties, or select the Action/Properties menu or click the Properties icon [image] on the Toolbar. This brings the properties page for the view.

3. Double-click on the filter you wish to edit.

You can edit this filter so it selects a specific service or a group of services using the * wildcard. For example you could select all services pertaining to the Disk Manager by specifying \\Mailsvr01\dm* as the Disk Manager services are dmserver and dmadmin.

Note: By default the services short name are used in the filters but this can be changed to the service display name in the properties page of the view.

If you want to create a filter that excludes services you need to add a "!" character in front of your filter string when editing.

Example: !\\Mailsvr01\TapiSrv this filter excludes the Telephony service from the view.

Note: "Including" filters show a yellow "+" icon on the left of the filter string. "Excluding" filters show a yellow "-" icon on the left of the filter string.

Related Topics

Add a resource selection filter
Delete a resource selection filter
About custom views
Add items to a view


Removing items from a view

To remove items from a view

1. Select the view in the tree view (left pane) of the Service+ Console.

2. Select one or several services in the details pane. You can highlight multiple services using the Shift and Ctrl keys.

3. Right-click on the selection and select Delete from view, or select the Action/Delete from view menu or click the Delete from view icon [image] on the Toolbar.

Note: Removing items from a view does not delete the items. For instance, services removed from a view are still running on their respective computer. Naturally they could be brought back to a view at any time.

Related Topics

Add items to a view
About custom views


View properties

To edit a view's properties

1. Select the View in the tree view (left pane) of the console.

2. Right-click the View and select Properties, or click the Properties icon [image] on the toolbar, or select the Action/Properties menu.

  • Name: Display name of the view.
  • Description: To provide more information if required.
  • Resource type: Specifies the type of resources selected by this view.
  • Resource selection filters: Displays the current list of selection filters of this view. See Editing resource selection filters.
  • Filter Services using: Determines whether the Resource selection filters of this view select services using their Short Name or their Display Name. For instance the Short Name of the "World Wide Web Publishing Service" is "W3SVC". The Name or Display Name is "World Wide Web Publishing Service".

Related Topics

About custom views
Editing resource selection filters


Delete a custom view

To delete a custom view

1. Select the View in the tree view (left pane) of the console.

2. Right-click the View and select Delete, or click the Delete icon [image] on the toolbar, or select the Action/Delete menu.

Related Topics

About custom views


Setting general properties

Editing service properties

To edit a service properties

1. Select a view in the tree view (left pane) of the Service+ Console.

2. Select one or several services in the details pane. You can highlight multiple services using the Shift and Ctrl keys.

3. Right-click on the selection and select Properties, or select the Action/Properties menu or click the Properties icon [image] on the Toolbar.

  • Startup Type: Lets you specify how the service process is to be started.
    • Automatic: Starts the service process automatically when the system starts.
    • Manual: The service process is started manually or when a dependent service starts.
    • Disabled: Prevents the service from being started by a user or a dependent service.
  • Log On As: Specifies whether the service logs onto the system with a system account or a user account. Most services log on to a system account. Services requiring access to networked resources use a user account with proper rights. Check the ServiceMill utility if you require your service application to interact with the desktop while logging on with a user account.
    • System Account: The service will run using the LocalSystem security context. The Interact with Desktop option provides whoever is logged in when the service is started with a user interface on a desktop.
    • This account: Allows you to assign a logon user account to a service. Although most services must log on to the system account, some services can be configured to log on to special user accounts having network rights.
    • in other sessions. Until now, the only work around to display interactive services was to switch from the user session to the session 0. But, this method reduces drastically the interest of making services interact with a user session, a feature widely used to monitor services efficiently.
  • Interact with desktop
    This option allows you to make a service interact with a user session.
    Interactive services on Windows Vista: Taking into account that services could be used to execute malicious code, Microsoft has decided to isolate Windows services in Session 0 and to run all other user initiated applications. Service+ is the only services management utility to provide an efficient solution to this limitation as it still offers you the possibility to really make an application launched as a service interact with a user session (run your application as a service with ServiceMill).
    Visit the Microsoft website to get more information on the services management modifications made on Windows Vista.
  • Short Name: Service name. This field cannot be edited.
  • Name: Service Display Name that can usually be edited.
  • Description: Provides a place for you to type a description of the service. The description box is not available when connecting to a remote computer running Windows NT 4.0 or earlier.
  • Program: Service program executable with parameters. Editing this field allows you to move a service to another directory without having to reinstall anything or change command line parameters.
Note: Settings above are stored as service parameters inside the registry.

Related Topics

Editing services dependencies
Editing services security


Specifying dependencies

Editing service dependencies

To edit a service's dependencies

1. Select a view in the tree view (left pane) of the Service+ Console.

2. Select a service in the details pane.

3. Right-click on the selection and select Properties, or select the Action/Properties menu or click the Properties icon [image] on the Toolbar. This brings the General tab of the service properties page.

4. Select the Dependencies tab.

  • The service is dependent on: Lists all services that require being started in order for the service to start. With Service+ you can add and remove service dependencies. Making a service dependent is extremely useful if you want a process execution to start after another process is loaded (for instance, running a batch file with ServiceMill as a service only after a relevant service application the batch controls is loaded). Use extreme caution when removing a service from this list.

    Service+ offers the possibility of specifying dependencies on drivers as well as services. When adding a dependency you can choose between Services and Drivers in the Type list.
Note: Making the service dependent on the Workstation service often solves problem with the service not started during the boot process.
  • Dependent services: Lists all services that can start only when the service is running. For example, you would see the batch file described above in this list.
Dependencies: Service dependencies are stored inside the registry as the DependOnService parameter. Do not edit them from the Registry Editor. Use the Service+ dependencies editor that is safe.

Related Topics

Editing services properties
Editing services security


Specifying service security

Editing service security

To edit the security of a service

1. Select a view in the tree view (left pane) of the Service+ Console.

2. Select a service in the detail pane.

3. Right-click on the selection and select Properties, or select the Action/Properties menu or click the Properties icon [image] in the Toolbar. This brings the General tab of the service properties page.

4. Select the Security tab.

  • Group and user names: lists the groups and users whose permissions to access the service are defined below. Click on Add to add a new user or group to the list. To remove a user or group from the list, select it and click on Remove.
  • Permissions: lets you define the permissions for the groups and users listed above.

    The following rights can be set for a service:
    • Full Control: The user or group has full access to the service.
    • Query Service Configuration: Required to query the service configuration (to display service properties).
    • Change Service Configuration: Required to change the service configuration (for instance to change the service startup type or the service description).
    • Query Service Status: Required to ask the service control manager about the status of the service (started, stopped, paused).
    • Enumerate Dependent Services: Required to enumerate all the services dependent on the service.
    • Start Service: Required to start the service. A user will also need the 'Query Service Status' right to detect when the service has properly started.
    • Stop Service: Required to stop the service. A user will also need the 'Query Service Status' right to detect when the service has properly stopped and the 'Enumerate Dependent Services' right to determine which dependent services must be stopped.
    • Pause & Resume Service: Required to pause and continue the service. A user will also need the 'Query Service Status' right to detect when the service has properly paused or continued.
    • Interrogate Service: Required to ask the service to report its status immediately.
    • Send User Defined Controls: Required to send a user-defined control code to the service.
    • Delete Service: Required to delete the service.
    • Query Service Security Descriptor: Required to display the service security descriptor. If the user does not have this permission, he will not be able to display the Security page.
    • Change Service Security Descriptor: Required to change the service security descriptor. If the user does not have this permission, he will not be able to save the changes made to the Security page.
    • Change Service Owner and Groups: Required to change the service owner and groups.
  • Reset: Clicking this button will reset the security to the system defaults.
Note : Starting with Windows 2003 SP1, you can also change the Service Control Manager Security.

Related Topics

Editing services properties
Editing services dependencies


Install a Service

Service+ lets you install services. Usually, Services are installed by the setup program of applications that require them. With Service+, you need not re-install applications to upgrade or repair the system services.

Install a ServiceMill Service:

This option is activated when ServiceMill is installed. It lets you install and run any executable as a service. ServiceMill uses the Service+ management console as its administrative user interface.

Install a Service:

Be aware that only executables developed as services and therefore displaying the behavior of a service can be installed from this option. If you want to run regular programs as services, you need to install ServiceMill and use the option above.

To install a service, right-click a view node and select All tasks/Install a service or select the Action/All tasks/Install a service menu. This launches the Install a service wizard.

There are three different ways to install a Service within Service+:

1. Create a new service lets you create a new service by specifying the major service parameters:

  • Service Name: The service ShortName. This name is the key name of the service inside the registry.
  • Display Name: The name displayed inside the Service+ console. You can edit this parameters later on from the Service properties.
  • Description: Provide more information if required.
  • Program: The Image path to the executable that you can edit from the Service properties
  • Service Type: Lets you specify the service process type. This parameter can only be edited from the registry afterwards.
    • Own process: A service that runs in a process that hosts only one service.
    • Shared process: A service that runs in a process that hosts multiple services.
  • Startup Type: Lets you specify how the service process is to be started.
    • Automatic: Starts the service process automatically when the system starts.
    • Manual: The service process is started manually or when a dependent service starts.
    • Disabled: Prevents the service from being started by a user or a dependent service.
  • Log On As: Specifies whether the service logs onto the system with a system account or a user account. Most services log on to a system account. Services requiring access to networked resources use a user account with proper rights. Check the ServiceMill utility if you require your service application to interact with the desktop while logging on with a user account.
    • System Account: The service will run using the LocalSystem security context. The Interact with Desktop option provides whoever is logged in when the service is started with a user interface on a desktop.
    • This account: Allows you to assign a logon user account to a service. Although most services must log on to the system account, some services can be configured to log on to special user accounts having network rights.
  • Error Control: Specifies how the process startup behaves when an error occurs. This parameter can only be edited in the registry afterwards.
    • Normal: A warning is displayed when the service reports an error and the error is written to the event log.
    • Ignore: The errors returned by the service are ignored and a warning is NOT displayed. However, errors are written to the event log.
2. Import service from clipboard lets you create a new service from an XML service configuration that was previously placed in the clipboard. To export a service to the clipboard, right click on the service in Service+ and click the Export service/to clipboard menu.

3. Import service from XML configuration file lets you create a new service from an XML service configuration file. To export a service to an XML configuration file, right click on the service in Service+ and click the Export service/to an XML configuration file menu.

Related Topics

Remove a service


Delete a Service

Deleting a service means uninstalling the service from the computer.

Note: Use extreme caution when deleting a service from a computer. Make sure you delete a service you will not need or a service you can reinstall.

To delete a service

1. Select a view in the tree view (left pane) of the Service+ Console.

2. Select one or several services in the details pane. You can highlight multiple services using the Shift and Ctrl keys.

3. Right-click on the selection and select Delete, or select the Action/Delete menu or click the Delete icon [image] on the Toolbar.

Note: If you delete a service and encounter a problem starting the computer, you may be able to start the computer in safe mode. Then you can try to restore the default configuration.

Related Topics

Install a service


Abort shutdown

This option will abort the InitiateSystemShutdown of an application. For instance, it allows you to test a scheduled reboot recovery action initiated by ServiceKeeper without actually rebooting the system.

In most cases an automatic system shutdown is programmed in such a way that a warning is presented to the user interface and a delay is left so corrective actions can be taken before the shutdown is effective. During this time you can take advantage of a unique Service+ feature allowing you to abort the shutdown of the computer.

To abort a shutdown

1. Select the Service+ node in the console tree.

2. Right-click the Service+ node and select All tasks/Abort shutdown or select the Action/All tasks/Abort shutdown menu.


Silent Installation

All the Active+ computer and service management products share the same installation procedure. This procedure can be run silent and unattended. It can be automated through command switches and parameters. Command switches and parameters can be entered at the command prompt or provided in a text file.

To install Service+, ServiceMill or ServiceKeeper using the silent mode

At the command prompt, run setup.exe with the pertinent command switches and parameters.

Installation switches and parameters:

The following switches let you preset the behavior of setup.exe when installing software.

/i or /install or /setup
Software installation. Setup.exe can also be run to uninstall software. See the /u switch in the next section. It is the default mode. Therefore this switch is optional.
/s
Silent mode: Use this switch to avoid any user interface during installation.
/InitFile=path to the switches text file
If you choose to use a command switch text file instead of typing all the switches at the command prompt, you will specify the full path to the text file using this switch.
/IconInTaskbar
The Service+ icon is added to the toolbar when the Service+ administration console is launched.
/RunOnStartup
Service+ is automatically started when the computer starts.
/ShortcutOnDesktop
A shortcut to launch the Service+ administration console is installed on the desktop.
/InstallAdmTools
Install the Service+ console. This lets you install the Service+ administration console without installing the Active+ product's services.
/InstallServices
Install the Active+ software service or services. This lets you install Active+ product's services without installing the Administration console.
/StartService+
Start automatically the Service+ administration console at the end of installation.
/InstallDir=Path
Installation directory: Specifies the directory where the files will be copied.
/CustomerId=JSmith
Lets you provide your License Customer ID.
/CustomerKey=1111AAA
Lets you provide your License customer KEY.
/Account = WORKGROUP\ServiceAccount
Lets you specify the Active+ services startup account name.
/Password = Password
Lets you specify the Active+ services startup account password.

Software remove switches:

The following switches lets you preset the behavior of the setup procedure when removing software.

/u or /uninstall or /remove
Remove Software. This switch tells the setup procedure to remove the specified software.
/Service+
Use this switch to remove Service+ only.
/ServiceMill
Use this switch to remove ServiceMill only.
/RemoveServiceMillServices
Use this switch to remove all services that have been created using ServiceMill.
/ServiceKeeper
Use this switch to remove ServiceKeeper only.

Example:

At the command prompt type:

setup.exe /s /IconInTaskbar /RunOnStartup /ShortcutOnDesktop /InstallAdmTools /InstallServices /StartServicePlus /CustomerID=ABC
/CustomerKey=123ABC /Account=domain\account /Password=password

or

setup.exe /InitFile=c:\temp\setup.txt

Where setup.txt is a text file containing the same switches and parameters.


Service+ Command Line

Service+® CL Help

Service+ CL is the Command Line version of Service+. Using the Windows Command Prompt, you can manage Windows Services on any computer throughout a domain. You can use wildcards along with the commands described in this topic to simultaneously control Windows Services. You can terminate any un-responding service without rebooting your computers. You can set services accounts and passwords on all your servers with just one command.

Service+ CL is a powerful time saving tool for administrators responsible of multiple Windows NT, 2000 and XP servers. You will need administrator rights over all computers which services you want to control with Service+ CL.

To use Service+ CL, launch your Windows system Command Processor application from Start/Programs/Accessories/Command Prompt and type sp at the prompt.

Requirements:

Service+ is a native Unicode application supporting English and French. Minimum requirements:
  • Windows NT 4.0 (Service pack 3 or later recommended), Windows 2000 or Windows XP.
  • 200KB of hard disk space.
Note: Versions are available both for Intel and Alpha (NT 4.0)

Installation:

Unzip spcl.zip into a temporary directory, then run install.bat and follow the instructions.

Licensing:

  • Single user.
  • 10-user license.
  • Site license (unlimited number of users in one physical location).
Contact us for specific / OEM licensing. Licensed users benefit from one-year free upgrades. Discounts apply for upgrades after the first year.
Registering your software: Use the REGISTER command to enter your key. A key will be sent to you by email after ordering the product. Note that you cannot enter the key from the 30-day trial version of the software; you need to download a commercial version, install it, and enter the key.

Service+ CL command line

All Service+ command line must conform to the following syntax:
sp command [[\\servername\]servicename] [/parameters]
Where elements between brackets are optional.
  • sp
    Must follow the prompt and precede the command. Indicates to the command processor that a Service+ command line follows.
    >sp
  • command
    Any Service+ command listed below. Follows sp with a white space.
    >sp command
  • servername
    Optional. Use to control services on any specified Windows NT/2000/XP machine on the network. The servername is the Microsoft Windows Network name of the machine. Note that some commands do not require you to have administrator rights over the remote machine (e.g. LIST), while others require those rights (e.g. START), or are not available for remote control (e.g. KILL). You can also use the * (all strings) and ? (all characters) wildcards.
    >sp command \\servername\
    Applies the command to the machine called servername on the network.
    >sp command \\*\
    Applies the command to all machines on the network.
    >sp command \\server?\
    Applies the command to all machines called server(x) on the network.
  • servicename
    Optional. Use to apply a command to a specified service. The servicename is the service's short name that you can view from the Services Control Panel Applet (Start/Settings/Control Panel/Services). Use the /DN parameter to use the Service Name instead of the Service Short Name. You can also use the * and ? wildcards.
    >sp command \\servername\servicename
    Applies the command to the service called servicename (short name) on the machine called servername.
    >sp command \\servername\*
    Applies the command to all services on the machine called servername.
    >sp command servicename
    Applies the command to the service called servicename (on the machine running Service+ CL).
    >sp command *
    Applies the command to all services on the machine running Service+ CL.
  • Parameters
    Parameters can be added to execute instructions from a single command line. Although most parameters are dependent upon a specific command, a few can be used in conjunction with most:

    /Q
    Quiet mode. Answers YES to any command that requires confirmation.
    Example: >sp kill _? /Q will terminate all services named _(x) on the machine running Service+ CL, without need to confirm each kill.

    /DOMAIN=
    Lets you focus only on machines members of a specified domain.
    Example: >sp stop servicename /DOMAIN=HeadQuarters will stop all services named servicename on all machines throughout the HeadQuarters domain.

    /DN
    Lets you specify the Service Name rather than the Service Short Name. Note that users can change the Service Name (display name) from their service properties settings, and that it is safer to use the Short Name (system name), which cannot be changed by users.
    Example: >sp start \\*\MERCUR SMTP-Service /DN will start the Mercur smtp service on all machines on the network.

Service+ CL list of commands

sp [ LIST | CONFIG | START | RESTART | STOP | PAUSE | CONTINUE | CONTROL | QUERY | CREATE | REMOVE | MODIFY | KILL | DEBUG | REGISTER | HELP ]
  • LIST Command
    List service status (Started, Stopped, Running, Pause).
    Syntax: sp LIST [[\\servername\]servicename] [/Domain=]
    Example: >sp list \\*\spooler will list the status of all your Spooler services on all your Windows NT/2000/XP machines.
  • CONFIG Command
    Display service(s) configuration information (servicename, service state, service type, startup type, error control, path, dependencies, display name, account).
    Syntax: sp CONFIG [[\\servername\]servicename] [/Domain=]
    Example: >sp config \\*\spooler will display the configuration status of all your Spooler services on all your Windows NT/2000/XP machines.
  • START Command
    Start service(s). You can specify parameters (such as text strings) that are passed to the service when started.
    Syntax: sp START[=Startup Parameters] [\\servername\]servicename
    Example: >sp start \\server\spooler will start the Spooler service on the server.
  • RESTART Command
    Restart (stop / start) service(s). You can specify parameters that are passed to the service when restarted.
    Syntax: sp RESTART[=Startup Parameters] [\\servername\]servicename
    Example: >sp restart \\server\spooler will restart the Spooler service on the server.
  • STOP Command
    Stop service(s).
    Syntax: sp STOP [\\servername\]servicename
    Example: >sp stop \\server\spooler will stop the Spooler service on the server.
  • PAUSE Command
    Pause service(s).
    Syntax: sp PAUSE [\\servername\]servicename
    Example: >sp pause \\server\spooler will pause the Spooler service on the server.
  • CONTINUE Command
    Resume paused service(s).
    Syntax: sp CONTINUE [\\servername\]servicename
    Example: >sp continue \\server\spooler will resume the Spooler service on the server.
  • CONTROL Command
    Send a private control code to your service(s).
    Syntax: sp CONTROL=Code servicename
    The code must be a value between 128 and 255
    Example: >sp control=128 myservice
    This command applies to custom code you are running as a service.
  • QUERY Command
    Query service(s) status.
    Syntax: sp QUERY [\\servername\]servicename [/Domain=]
    The command will return an ErrorLevel that will determine the service status:
    0 The service is not installed
    1 The service is stopped
    2 The service is starting
    3 The service is stopping
    4 The service is started
    5 The service is continuing
    6 The service is pausing
    7 The service is paused
    The following example shows how you can write a batch file (.bat) that will query the status of the spooler, start it if it is stopped and stop it if it is started:
    sp QUERY Spooler
    if ErrorLevel 1 sp START Spooler
    sp QUERY Spooler
    if ErrorLevel 4 sp STOP Spooler
  • CREATE Command
    Create service(s). Note that this command will not turn an executable into a service but only register it as a service. The executable will need to have a service behavior in order for it to be managed as a service (refer to ServiceMill on how to turn executables into services).
    Syntax: sp CREATE [\\servername\]servicename /PATH=Path to executable
    The path to executable is a required parameter. Other available parameters:
    [/DISPLAYNAME= ] assigns a name to the service. This is the editable name, as opposed to the ShortName, which cannot be changed.
    [/ACCOUNT=Domain\User][/PASSWORD=] lets you specify a user account and password to log on the service.
    [/INTERACT=1,0] lets you specify the interact with desktop mode when the service is logged on using the system account.
    [/STARTUP=MANUAL,AUTO,DISABLED] specifies how the service is to be started.
    [/TYPE=OwnProcess,SharedProcess] specifies if the service process is hosting other services as well.
    [/ERRORCONTROL=Ignore,Normal,Severe,Critical] determines how the process is to be handled if problems occur while launching.
    Example: >sp create \\server\myservice /path=c:\svcitocx\sample\service.exe
    will register the service.exe executable on the server as myservice (short name).
  • REMOVE Command
    Remove service(s). Note that this will unregister as service the executable, and not delete it.
    Syntax: sp remove [\\servername\]servicename
    Example: >sp remove \\server\myservice will remove myservice as a registered service on the server.
  • MODIFY Command
    Use to modify service parameters. The parameters are stored inside the registry.
    Syntax: sp MODIFY [[\\servername\]servicename]
    Other available parameters:
    [/ACCOUNT=Domain\User /PASSWORD=xyz] lets you change the user account the service uses to log on. You will have to supply the password.
    [/STARTUP=MANUAL,AUTO,DISABLED] lets you modify the service startup option.
    [/DISPLAYNAME="Service Display Name"] lets you modify the service name. This is not the ShortName that cannot be edited.
    [/PATH="Service Name"] lets you modify the path to the service executable.
    [/DEPEND=] lets you modify service dependencies (the DependsOnService).
    [/INTERACT=1,0] lets you modify the interaction mode. Services logging on using a system account can interact with the desktop.
    Example: >sp modify myservice /interact=1
    will allow desktop interaction for GUI services logged on with a system account.
  • KILL Command
    Terminates the service process. Difference with stopping? Note that this command cannot be used remotely and only applies to services running on the machine with Service+ CL.
    Syntax: sp KILL servicename
    Example: >sp kill spooler will terminate the spooler.
  • DEBUG Command
    Start the service and launch your debugger (Such as Visual C++). This command cannot be used remotely and requires you to have the source code of the executable running as a service.
    Syntax: sp DEBUG servicename
    Example: >sp debug MyService will start MyService and run it in debug mode.
  • REGISTER Command
    Install the product registration key.
    Syntax: sp REGISTER /ID=YourID /Key=YourKey
    Example: >sp register /ID="Active+ Software" /Key=12345
  • HELP Command
    Displays the Service+ CL help inside the command processor window.
    For detailed information about a command: >sp command /help

Related Topics

Service+
ServiceMill
ServiceKeeper


ServiceMill

ServiceMill® Help Files

ServiceMill instantly turns 16 bit / 32 bit applications, batch files, scripts and custom programs into native Windows services application. Running it as a service only requires a few clicks and no modification to the source.

With ServiceMill, you can run executables securely in the background without need of a user session. You can log on your service application with a user account in order for it to access network resources, and still provide interactive mode for desktop interaction. ServiceMill allows you to specify window position at startup, start your service applications at predefined intervals, and have them automatically restarted when a user logs off.

ServiceMill service applications report to the event log and are assigned a process priority (High, Normal, Idle). All network drives are restored when the process starts. ServiceMill keeps track of child processes that the service application may launch, so no process is ever left orphaned when that service stops.

ServiceMill service applications are managed as any other service, relying on the same administrative tools: MMC snap-in, service control panel applet, command line. The enhanced Service+ SCP is included with ServiceMill, providing you remote administration of your service applications. You can also easily schedule, monitor and recover your executables using ServiceKeeper. The following table shows what features you gain compared to the Windows Toolkit Srvany.

 | ServiceMill | SRVANY |
Graphical User Interface | YES | NO | Create services in a few clicks
MMC integration | YES | NO | Control and edit properties through MMC
Remote administration | Service+ | NO | Also, terminate services without rebooting !
Command Line Interface | YES | NO | Automate service setup on large networks
Creation of service from remote computer | YES | NO | Deploy services on the network easily
Interact with desktop from system account | YES | YES | Service can interact with user input
Interact with desktop from user account | YES | NO | Service can access network resources
Specify startup Window | YES | NO | For applications interacting with desktop
Input / Output file redirection | YES | NO | For text-based applications
Event log support | YES | NO | Allows event-filtering monitoring (ServiceKeeper)
Child process support | YES | NO | No orphan process left after stopping
Clean service stop | YES | NO | No abrupt TerminateProcess()
Service-specific environment variables | YES | NO | For Java applications running as service
Scheduling, monitoring and recovery | ServiceKeeper | NO | Automation tools to safeguard your services
Auto restart at regular intervals | YES | NO | Conditional, upon detection of stop status
Related products:
Service+: The enhanced Service control panel (SCP) that ships with ServiceMill.
ServiceKeeper: The unique utility that schedules, monitors and rescues all Windows services.

Requirements:

ServiceMill is a native Unicode application supporting English, French and Korean. Minimum requirements:
  • Windows NT 4.0 (Service pack 4 or later), Windows 2000, Windows XP or Windows 2003
  • Microsoft Management Console (MMC) 1.1 or later
  • Internet Explorer 4.0 or later
  • 2 MB of hard disk space
Note: Versions are available both for Intel X86, Intel Itanium and Alpha (NT 4.0)

Installation:

Unzip svcmill.zip into a temporary directory, then run setup.exe and follow the instructions. Service+ is installed along with ServiceMill and executables are bundled together.

Licensing:

Licenses for Windows NT Server, Windows 2000 Server And Advanced Server, Windows 2003:
  • 1 server
  • Up to 10 servers
  • Up to 25 servers
  • Site license (unlimited number of servers in one physical location).
Licenses for Windows NT Workstation, Windows 2000 Professional, Windows XP Home Edition and Professional:
  • 1 machine
  • Up to 10 machines
  • Up to 25 machines
  • Site license (unlimited number of machines in one physical location).
Contact us for specific / OEM licensing. Licensed users benefit from one-year free upgrades. Discounts apply for upgrades after the first year.
Note: Service+ is included with ServiceMill. You do not need to install and register Service+ separately.

Help Files Main Sections:

Create a Service
Setting General Properties
Setting I/O Redirection Properties
Setting Environment Variables
Setting Events
Schedule Application Execution
Setting Advanced Properties
Service+
ServiceKeeper


Install a ServiceMill Service

Create a Service

ServiceMill is a service-host application that reads service parameters from the services registry branch: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services key. When the SCM starts a ServiceMill service application, the service is launched as a child process of ServiceMill and inherits its security context and interactivity setting. This context is determined by the service account set from the SCP's service properties box.

ServiceMill allows to specify the process priority. Executables installed as a service each run in a separate process with a different instance of the ServiceMill host program.

When the service is stopped, the executable receives a WM_CLOSE message and cleanly terminates. Executable not stopping within 10 seconds the command was initiated will be terminated via the TerminateProcess() API, a more drastic way to end an application.

When running a GUI application as a service and a user logs off, the application receives a WM_QUERYENDSESSION and WM_ENDSESSION message. Your application must not exit on such messages in order to survive logoff. If you cannot control that behavior, set the restart setting to 1 second so that your process gets restarted immediately.

Installing a ServiceMill Service:

From the Service+ MMC console, right-click on a computer view and select 'All Tasks / Install a ServiceMill service...':

There are three different ways to install a Service within Service+:

1. Create a new ServiceMill service lets you create a new ServiceMill service by specifying the major service parameters:

  • Service Name
    Enter the Service Name. Avoid spaces and use a concise name. This is the ShortName stored inside the registry.
  • Display Name
    Enter the Service Display Name.
  • Description
    Enter the Service Description.
2. Import ServiceMill service from clipboard lets you create a new ServiceMill service from an XML service configuration that was previously placed in the clipboard. To export a ServiceMill service to the clipboard, right click on the ServiceMill service in Service+ and click the Export service/to clipboard menu.

3. Import ServiceMill service from XML configuration file lets you create a new ServiceMill service from an XML service configuration file. To export a ServiceMill service to an XML configuration file, right click on the ServiceMill service in Service+ and click the Export service/to an XML configuration file menu.

Press Next to set the service general properties.

Note: All errors will be reported in the Event Log. If you want to report errors to the Event Log from a batch file running as a service, you can use the command line:
svcit /Service="Your Service Name" /Type=Error /Message="The error message"
Execute svcit.exe /? | more for detailed information about ServiceMill Command Line parameters.

Related Topics

Setting General Properties
Setting I/O Redirection Properties
Setting Environment Variables
Setting Events
Schedule Application Execution
Setting Advanced Properties
ServiceMill


Setting General Properties

The service properties box lets you specify the path to the executable and set the startup window. You can also modify existing ServiceMill service settings through this box by selecting the service from the Service+ main window, clicking on 'Properties', and selecting the ServiceMill tab.
  • Program: Specify the full path to the application you want to run as a service. The string can include environment variables. (e.g. %SystemRoot%).
  • Parameters: Specify parameters passed to the application. The string can include environment variables. You can pass additional parameters when starting the service using service startup parameters in Service+ (Service/Start... option).
  • Directory: Specify the default process directory. If not specified, the default directory will be the application directory. The string can include environment variables.
  • Startup Window: Specify the window placement (Normal, Minimized, Maximized, etc.).
  • When the program stops, restart it after n seconds: Specify the time period to wait before restarting a process that has stopped. This option is useful if you want to schedule a batch file or an executable file periodically. It is also useful for GUI applications not surviving a user logging off.
  • Show icon in taskbar: Specify that an icon should be added to the taskbar to let you control the service. The service must be desktop interactive for this feature to work.
  • Hide on close: Specify that, if the application is closed, the application will be hidden instead of terminated. Double clicking on the taskbar icon will restore the application on the desktop.

Related Topics

Create a Service
Setting I/O Redirection Properties
Setting Environment Variables
Setting Events
Schedule Application Execution
Setting Advanced Properties
ServiceMill


Setting I/O Redirection Properties

Highlight the ServiceMill service from the Service+ main window, click on Properties, ServiceMill, I/O Redirection.
  • I/O Redirection: Specify standard input/output redirection (stdin, stdout, stderr). This option is designed for text-based programs only, for instance, a batch file running as a service, which output you want to reuse for another application. When an input file is specified, the text will be fed to the console input (similar to the < command line syntax). When an output file is specified, the output will also be redirected to the console (similar to the > command line syntax).

Related Topics

Create a Service
Setting General Properties
Setting Environment Variables
Setting Events
Schedule Application Execution
Setting Advanced Properties
ServiceMill


Setting Environment Variables

Some programs rely on environment variables to retrieve computer configuration and settings. Variables are of System or User type. System variables can be added, edited or removed from an admin account only. To review all the variables available to your system, type set from a prompt box, or click on 'System / Advanced / Environment Variables' from the Control Panel.

ServiceMill lets you create environment variables specific to the service-application process. Those variables are neither System nor User type and are available to the service process whatever account the service uses to log on.

Highlight the ServiceMill service from the Service+ main window, click on Properties, ServiceMill, Environment Variables.
  • Environment Variables
    Enter a new variable name with its value and click on Set. Highlight the variable from the list and click on Delete to remove.
Variables and service account: If your service logs on with a system account, User variables will not be made available to the process. In that case, you can create service specific variables as described above and assign to them values of the user variables you wish to use.

Related Topics

Create a Service
Setting General Properties
Setting I/O Redirection Properties
Setting Events
Schedule Application Execution
Setting Advanced Properties
ServiceMill


Setting Events

Highlight the ServiceMill service from the Service+ main window, click on Properties, ServiceMill, Events.
  • When the service starts: This event is called by the service at starting time.
  • When the application is about to be started: This event is called by the service just before launching the application.
  • When the application has been started: This event is called by the service when the application has been started.
  • When the application terminates unexpectedly: This event is called by the service when the application is not stopped by ServiceMill.
  • When the service is about to be stopped: This event is called by the service when it is about to be stopped. At this time, the application is still alive.
  • When the application is about to be stopped: This event is called by the service just before it tries to close the application.
  • When the application has stopped: This event is called by the service when the application has been stopped.

Related Topics

Create a Service
Setting General Properties
Setting I/O Redirection Properties
Setting Environment Variables
Schedule Application Execution
Setting Advanced Properties
ServiceMill


Setting Schedule Properties

Highlight the ServiceMill service from the Service+ main window, click on Properties, ServiceMill, Schedule.
The Schedule feature lets you specify the running state of the launched application. This option can also be used to restart the application (e.g. to clean-up unreleased memory, handles, etc.). It is also possible to stop the application during backups or when the application should not be used (e.g. week-ends, at night, etc.).

Note: This feature does not replace the ServiceKeeper schedule feature. ServiceKeeper will schedule the service whereas ServiceMill will only schedule the launched application. Both schedules may be enabled at the same time.

Related Topics

Create a Service
Setting General Properties
Setting I/O Redirection Properties
Setting Environment Variables
Setting Events
Setting Advanced Properties
ServiceMill


Setting Advanced Properties

Highlight the ServiceMill service from the Service+ main window, click on Properties, ServiceMill, Advanced.
  • Enable Pause/Continue: Enable the pause and continue service command. This will suspend or resume the process primary thread.
  • Interact with Desktop when the service logs on as a user: Under Windows NT/2000/XP/2003, an interactive service cannot be configured to log on as a user account, therefore it cannot access network resources. When enabling this option, ServiceMill allows your GUI programs to interact with the desktop and access network resources simultaneously. To do this, you also need to specify the service logon account using the Service+ General tab.

    Interactive services on Windows Vista: Taking into account that services could be used to execute malicious code, Microsoft has decided to isolate Windows services in Session 0 and to run all other user initiated applications. ServiceMill is the only services management utility to provide an efficient solution to this limitation as it still offers you the possibility to really make an application launched as a service interact with a user session.
    Visit the Microsoft website to get more information on the modifications made on Windows Vista.

  • Restore Network Connections: If the application you are running as a service cannot use UNC paths to access network resources, select this option. All drives that are mapped by the service application will be restored.
  • Process Priority: Select the process base priority (Idle, Normal or High).
  • Process Affinity :On multiprocessor systems, this allows you to select the processors on which the application will run. If your application does not work well on multiprocessor machines, clicking on CPU 0 should solve your problem.
  • Report the service as 'Started' after n seconds: Specify in this field the amount of time that the launched application will take to initialize. This setting is useful when the service has dependent services that should only start when the launched program is fully started.

Related Topics

Create a Service
Setting General Properties
Setting I/O Redirection Properties
Setting Environment Variables
Setting Events
Schedule Application Execution
ServiceMill


ServiceKeeper

Introducing ServiceKeeper®

Administrators require from their servers a set of features that regular users would never ask from their operating system. Windows platforms however provide the same level of administrative features and the same user interface for all. This product standardization has led to a flourishing of third party system utilities designed to overcome limitations with initial compromises.

Services being central to the NT architecture, scheduling, monitoring and recovering service processes greatly strengthens the platform itself. ServiceKeeper provides administrators with a centralized and integrated system automation tool to keep servers hosting mission-critical applications up and running.

You can schedule a selection of critical application services to restart so that resources are cleaned up on a regular basis. You can monitor services using multiple criteria, tracking their behavior to prevent failures. You can automate and fine-tune corrective actions to recover and restart failed services without rebooting.

Used with ServiceMill, you can apply those powerful tools to any application that you want to run, schedule, monitor and recover as a Service. The Service+ service administration utility integrates with ServiceKeeper, providing you with even more control on your services. The following table shows features ServiceKeeper adds to your system.

 | ServiceKeeper | Standard Windows Services tools
Windows version | Windows NT/W2K/XP | Windows XP | Windows 200x | Windows NT
Schedule services | YES | NO | NO | NO
Remote computer monitoring | YES | NO | NO | NO
Service failure detection |  |  |  |
Service status monitoring | YES | YES | YES | NO
Network activity | YES | NO | NO | NO
Event log monitoring | YES | NO | NO | NO
NT counters monitoring | YES | NO | NO | NO
Script return value | YES | NO | NO | NO
Program exit code | YES | NO | NO | NO
Notification methods |  |  |  |
Send email | YES | NO | NO | NO
Send administrative alert | YES | NO | NO | NO
Launch program or batch | YES | NO | NO | NO
Send SNMP trap | YES | NO | NO | NO
Run a script | YES | NO | NO | NO
Write to html event log | YES | NO | NO | NO
Recovery methods |  |  |  |
Restart service | YES | YES | YES | NO
Restart other service | YES | NO | NO | NO
Launch program or batch | YES | YES | YES | NO
Run a script | YES | NO | NO | NO
Reboot computer | YES | YES | YES | NO
Related products:
Service+: The enhanced Service Management Console that ships with ServiceKeeper.
ServiceMill: The utility that instantly turns any application, batch file, script program into a Windows Service that you can schedule, monitor and recover with ServiceKeeper.

Requirements:

ServiceKeeper is a native Unicode application supporting English, French and Korean. Minimum requirements:
  • Windows 2000, Windows XP (32-bit & 64-bit), Windows Server 2003 (32-bit & 64-bit), Windows Vista
  • 16 MB of hard disk space
Note: Available for Intel x86, Intel Itanium and AMD x64 platforms

Installation:

Unzip skeeper.zip into a temporary directory, then run setup.exe and follow the instructions.

Licensing:

  • Up to 2 monitored servers
  • Up to 5 monitored servers
  • Up to 10 monitored servers
  • Up to 25 monitored servers
  • Site license (unlimited number of servers in one physical location).
You can install ServiceKeeper on any number of machines that are being monitored. For instance, if you install ServiceKeeper "2 monitored servers" on one machine, you can monitor both servers from that machine. If you install ServiceKeeper on both servers, you will only be given service monitoring features on the machine you are running it from.

Contact us for specific / OEM licensing. Licensed users benefit from one-year free upgrades. Discounts apply for upgrades after the first year.
Note: Service+ is included with ServiceKeeper. You need not install and register Service+ separately.

Related Topics

Configuring ServiceKeeper
Monitor services
Scheduling services
Resource monitoring
Scheduling resource monitoring
Service+
ServiceMill


Configure ServiceKeeper

Configuring ServiceKeeper

ServiceKeeper installs and runs as a service, adding its own Schedule and Monitor tabs to the Service+ console. ServiceKeeper also integrates with the Standard Services Console. Just highlight a service from the list and select 'Properties'.

To configure ServiceKeeper, start the Service+ console and double-click on the ServiceKeeper service:
  • Monitored Computers: Lists all computers which services are monitored. When ServiceKeeper monitors a server, the Schedule and Monitor tabs are added to the Properties of all services installed on that server. To add a computer, you need both administrative rights on that machine and a proper ServiceKeeper license.
  • Logging Level: The logging level defines the amount and types of messages that will be reported to the Windows event log. Set the logging level to: Minimum to report major errors only, Normal to report major errors and warnings, Maximum to report Informational, Warnings and Errors.
  • Notification Methods: This setting is the default reporting applied to failing services or resources. You can set notification methods per each service by selecting the service and clicking Monitor / Notify.

Related Topics

Introducing ServiceKeeper.


Monitor Services

About Monitoring Services

ServiceKeeper provides a robust and unique set of tools for monitoring services. A successful monitoring is one that is able without disruption of service to automatically:
  • Detect failures or conditions that could lead to a service failure.
  • Correct the problem or initiate alternative actions when recovery is not possible.
  • Notify of incidents, failures and steps taken to correct problems.
Prior to using ServiceKeeper, you need to devise a strategy that applies the best to what you are monitoring and what your network capabilities are. For instance, if you can rely on backup redundant servers, a good approach would probably be to set your standby services to start automatically on another machine, before applying corrective measures on the failed service.

Windows provides several monitors that help you easily pinpoint process performance and analyze behavior. If you are running a crash-prone gateway that doesn't properly close handles and develops memory leaks, you can use the Performance Monitor to determine counters threshold, or the Event Viewer to retrieve warning IDs that are characteristic of a recurring unstable condition. This information is used in ServiceKeeper to precisely automate preventive actions.

Related Topics

Detect Service Failures
Recover Failed Services
Set Error Notifications
Scheduling Services
Setting Monitoring advanced parameters
Introducing ServiceKeeper


ServiceKeeper Statistics

Statistics pages are available in the ServiceKeeper general properties, services properties and monitored resources properties. It offers a summary of your IT system activity allowing you to determine your overall system availability.

Related Topics

Detect Service Failures
Recover Failed Services
Set Error Notifications
Scheduling Services
Setting Monitoring advanced parameters
Introducing ServiceKeeper


Scheduling Services

Most application and server failures are due to process threads failing for various reasons after a while. Applications not releasing handles can also overflow resources and ultimately crash. The most widely used way to prevent or to remedy such crashes has been for administrators to reboot systems once in a while.

You can use ServiceKeeper for regular scheduled maintenance, by restarting potentially troublesome services to free resources, leaving other processes operative.

You can use ServiceKeeper to shut down processes during back-ups, to avoid locking resources, or to close services after business hours and restrict data access.

  • Start Service+, select the service you want to schedule, press the Properties button and select the Schedule tab. Use the service state buttons to select a service state, and highlight the zone you want that state applied to the service. Right-click on painted area to remove schedule.
Note: By default, the scheduled service status is monitored every 30 seconds, and the default recovery method is to restart the service. Unless specified otherwise, if recovery fails, the administrator is notified by means defined in the service configuration or the ServiceKeeper default configuration. This scheme applies even when the Detect, Recover, Delays and Notify settings are not Enabled for the scheduled service. To apply different settings to scheduled service, select from the list of actions in the Monitor tab and check Enabled.

Scheduled Service State:

Light Green: The service will be started.
If the service is dependent on other services, those services will also be started.
Red: The service will be stopped.
Dependent Services will also be stopped. Be careful not to set up conflicting schedules on dependent services (e.g. A depends on B, B scheduled for stopped while A scheduled for started).
Orange: The service will be paused.
This scheduled state is useful for maintenance tasks and restricting access to computer resources after business hours. For instance, when the Server service is paused, only users with administrative privileges can log on.
White: The service state will be ignored.
This is the default schedule of all services. If you set schedules to a service that has dependencies, make sure the dependent services state is ignored. Or, if you schedule a service that is dependent on another, check the state of the later is ignored.
Blue: The service will be started once during a 1/2 hour time period.
This is very useful scheduled state to start task such as Backups or E-Mail transfers.
Dark Green: The service will be restarted once during a 1/2-hour period.
This scheduled state can be used to restart services that do not release all their resources (Memory, Handle, etc.).
Setting startup parameters: When a service is started you can specify optional startup parameters. This option is equivalent to the Service+ dialog box you get when you press the Shift key and the Start button together.
Start dependent services configured for automatic startup: Optionally, you can start services configured for automatic startup that are dependent on the current service. If service B is dependent on service A, when A is stopped, B will also be stopped. If A is started again, B will also be started using this option.
Start dependent services that were previously started: Optionally, you can tell ServiceKeeper to start services that are dependent on the current service but only if they were already started. If service B is dependent on service A and was started, when A is stopped, B will also be stopped. If A is started again, B will also be started using this option.
Kill the service process if the service cannot be stopped: Optionally, you can tell ServiceKeeper to Kill the service process or processes in case the service does not stop. ServiceKeeper will determine that the service does not stop based on the Pending state timeout. The Pending state timeout can be set in the Advanced choice of the Monitor tab.

Note: Only processes running on the same computer as ServiceKeeper can be killed. Services running on a remote computer cannot be killed by ServiceKeeper.

Delay before starting dependant services: This parameter tells ServiceKeeper to wait for the specified time before attempting to start dependant services.

Related Topics

Introducing ServiceKeeper
Modifying the monitoring Advanced parameters


Detecting Service Failures

ServiceKeeper provides various methods for service failure detection, that you can combine according to specific behavior of monitored processes. The best way to find the right mix is to test over time your detection settings. The Performance Monitor and the Event Log should also provide you with good indications about computer resources usage and events associated to processes you want to monitor.

To modify failure detection settings for a Service

1. Open the Service+ management console. Select a view in the tree view (left pane) and the server you wish to monitor in the details pane.

2. Right-click the service to be monitored and select properties or double-click on the service.

3. Click on the Monitor tab and the Detect choice to access the list of existing failure detection rules.

You can add, modify, remove or change the order of failure detection rules from right pane.

Each detection rule can individually be enabled or disabled using the check box next to it.

The intervals used to detect failures is set in the advanced parameters of the monitoring tab.
Scheduled services: Scheduled services are monitored using the default service status detection.
Related Topics
Add a Failure Detection Rule
Modify a Failure Detection Rule
Set Failure Detection Rules Order
Remove a Detection Rule
About Monitoring Services


Add a Failure Detection Rule

To add failure detection rule for a service

1. Click on the Monitor tab and the Detect choice of the service properties to access the list of existing detection rules.

2. Click on the New Failure Detection Wizard button [image]. This launches the wizard.

3. Select the appropriate type of failure detection and click Next.

4. Enter a new description for your detection rule and click Next.

5. Edit the detection rule settings.

Each detection type has its own settings. Please follow the links below to see detailed information regarding the detection type settings.

Detection types

Monitoring Service Status Monitoring a Web Site Monitoring a FTP Site Monitoring a SMTP Server Monitoring a POP3 Server Monitoring a NNTP Server Controlling Network Devices (Firewall, Router, etc.) Monitoring TCP/IP Ports Monitoring Event Logs Monitoring Performance Counters Monitoring Service Memory Usage Monitoring Service CPU Usage Using Script Return Values Using Program Exit Code Monitoring The File System

Related Topics

About Detecting Service Failures


Modify a Failure Detection Rule

To modify a failure detection rule for a service

1. Click on the Monitor tab and the Detect choice to access the list of existing detection rules.

2. Select the rule you wish to modify.

3. Click on the Properties icon [image] or double-click the rule. This brings up the detection rule properties.

4. The General tab lets you edit the settings for the particular rule you choose.

  • Operator: The operator choice lets you decide how the detection rule you are editing will be logically combined with the other rules present in the detection rule list.
    OR | When two or more rules are logically linked by the OR operator if either one of them evaluates to a failure then the final evaluation is evaluated as a failure.
    AND | When two or more rules are logically linked by the AND operator all of them needs to evaluate to a failure for the final evaluation to be evaluated as a failure.
    XOR | When two or more rules are logically linked by the XOR operator one and only one of them must evaluate to a failure for the final evaluation to be evaluated as a failure.

    The precedence between the operators during the evaluation leads to AND evaluations being performed prior to the OR evaluations that performed prior to the XOR evaluations. In other words, A OR B OR C AND D OR E AND F AND G will be evaluated like A OR B OR (C AND D) OR ((E AND F) AND G).

Each detection type has its own settings. Please follow the links below to see detailed information regarding the detection type settings.

Detection types

Monitoring Service Status Monitoring a Web Site Monitoring a FTP Site Monitoring a SMTP Server Monitoring a POP3 Server Monitoring a NNTP Server Controlling Network Devices (Firewall, Router, etc.) Monitoring TCP/IP Ports Monitoring Event Logs Monitoring Performance Counters Monitoring Service Memory Usage Monitoring Service CPU Usage Using Script Return Values Using Program Exit Code Monitoring The File System

5. Select the Polling frequency tab to set the Detection Polling Frequency .

Related Topics

About Detecting Service Failures
Detection Polling Frequency


Set Failure Detection Rules Order

Failure detections take place in the order they appear in the Failure Detection list on the Monitor tab of the service properties. You can reorder this list to adjust the order in which detections are performed.

1. Click the Monitor tab and the Detect choice to access the list of existing detection rules.

2. Select a rule which position in the list you want to change and click the Up button [image] to move the rule up in the list or click the Down button [image] to move the rule down in the list.

Related Topics

About Detecting Service Failures


Set the Detection Polling Frequency

Set the Failure Detection Polling Frequency

The failure detection polling frequency tab lets you set how often the specific conditions defined by a detection rule are checked. It also lets you specify whether a failure is reported each time the failure conditions are met or whether the failure conditions need to be detected repeatedly during a given period of time before ServiceKeeper considers a failure.

To edit the Polling Frequency tab settings

1. Click on the Monitor tab and the Detect choice to access the list of existing detection rules.

2. Select the rule you wish to modify.

3. Click on the Detection Properties icon [image] or double-click the rule. This brings up the detection rule properties.

4. Click the Polling Frequency tab.

  • Check for failure every ...: You can use this parameter to define how often ServiceKeeper will check the conditions defined in the General tab of the rule.
  • Check failure over the time: Select this option to tell ServiceKeeper to check the failure conditions a given number of times and report an error only if a certain percentage of failure has occurred.
  • Check count: This is the number of times you want ServiceKeeper to check the conditions before a failure is evaluated and can be reported.
  • Report when failure rate equals ... %: This is where you specify the proportion of failure that needs to be reached to trigger a failure report.
Example: In the example above ServiceKeeper checks every 10 seconds whether the World Wide Web Publishing Service is started. After three times, ServiceKeeper reports a failure if the service has been found "not started" two or three times, as 2/3 is 66% and 3/3 is 100%. If the service has been found "not started" only once ServiceKeeper will not report a failure because 1/3 is only 33%.

Related Topics

About Detecting Service Failures
Modify a Failure Detection Rule


Remove a Failure Detection Rule

To remove a failure detection rule

1. Click on the Monitor tab and the Detect choice of the Service properties.

This gives you access to the list of existing detection rules.

2. Select the detection rule you want to remove and click on the Remove button [image] or press the Delete key of your keyboard.

Related Topics

About Detecting Service Failures


Monitoring Service Status

This type of failure detection is used to determine whether the service is "not started" or "not on schedule" according to the service's schedule configuration. The Service Control Manager provides the service status to ServiceKeeper. The service condition is checked at intervals defined through the Polling Frequency tab.

'Service status' detection rule properties

  • Description
    You can change the description if needed.
Note: Checking the service status will not necessarily detect conditions when the service is crashed or in a loop. It is advised to use this type of detection combined with performance counters and/or event log detection rules that can also detect problems with the service processes.

Related Topics

Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Service Memory Usage
Monitoring Service CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Service Failures


Monitoring a Web Site

This failure detection method lets you control the availability of a web site by opening an HTTP connection with it. You can select an IIS web site located on a computer of your local area network or directly enter the address of a remote web site.

'Monitor a Web Site' detection rule properties

  • Monitor associated Windows service (Wizard mode): Configure automatically a recovery action that restarts the associated IIS service (w3svc) when the web site is down.
  • Detect protocol specific errors (Properties mode): When this option is checked, ServiceKeeper will detect HTTP protocol errors like 4xx or 5xx.

The Text Search tab lets you control the validity of the returned web page by looking for some text.

Note: ServiceKeeper can open a specific page on your web site. For instance, you can enter the following URL: http://www.activeplus.com/us/products/ServiceKeeper/default.asp

Related Topics

Monitoring Service Status
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Service Memory Usage
Monitoring Service CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Service Failures


Monitoring a FTP Site

This failure detection method lets you control the availability of an FTP site by opening a connection with it. You can select an IIS FTP site located on a computer of your local area network or directly enter the address of a remote FTP site.

'Monitor a FTP Site' detection rule properties

  • Monitor associated Windows service (Wizard mode): Configure automatically a recovery action that restarts the associated IIS service (MSFTPSVC) when the FTP site is down.
  • Detect protocol specific errors (Properties mode): When this option is checked, ServiceKeeper will analyse the FTP server response and will detect an error when a failure code is returned.

Related Topics

Monitoring Service Status
Monitoring a Web Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Service Memory Usage
Monitoring Service CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Service Failures


Monitoring a SMTP Server

This failure detection method lets you control the availability of a SMTP site by opening a connection with it. You can select an IIS SMTP site located on a computer of your local area network or directly enter the address of a remote SMTP site.

'Monitor a SMTP Server' detection rule properties

  • Monitor associated Windows service (Wizard mode): Configure automatically a recovery action that restarts the associated IIS service (SMTPSVC) when the SMTP site is down.
  • Detect protocol specific errors (Properties mode): When this option is checked, ServiceKeeper will analyse the SMTP server response and will detect an error when a failure code is returned.

Related Topics

Monitoring Service Status
Monitoring a Web Site
Monitoring a FTP Site
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Service Memory Usage
Monitoring Service CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Service Failures


Monitoring a POP3 Server

This failure detection method lets you control the availability of a POP3 site by opening a connection with it. You can select an IIS POP3 site located on a computer of your local area network or directly enter the address of a remote POP3 site.

'Monitor a POP3 Server' detection rule properties

  • Monitor associated Windows service (Wizard mode): Configure automatically a recovery action that restarts the associated IIS service (POP3SVC) when the POP3 site is down.
  • Detect protocol specific errors (Properties mode): When this option is checked, ServiceKeeper will analyse the POP3 server response and will detect an error when a failure code is returned.

Related Topics

Monitoring Service Status
Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Service Memory Usage
Monitoring Service CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Service Failures


Monitoring a NNTP Server

This failure detection method lets you control the availability of a NNTP site by opening a connection with it. You can select an IIS NNTP site located on a computer of your local area network or directly enter the address of a remote NNTP site.

'Monitor a NNTP Server' detection rule properties

  • Monitor associated Windows service (Wizard mode): Configure automatically a recovery action that restarts the associated IIS service (NNTPSVC) when the NNTP site is down.
  • Detect protocol specific errors (Properties mode): When this option is checked, ServiceKeeper will analyse the NNTP server response and will detect an error when a failure code is returned.

Related Topics

Monitoring Service Status
Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Service Memory Usage
Monitoring Service CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Service Failures


Monitoring Network Devices (PING)

This method lets you control the availability of your network devices (like computers, routers, firewalls, etc.) by sending a PING request.
You just have to specify the network device IP address or name and the maximum time the device can take to respond (equivalent to the -w option of the PING command). You can also specify the size of the packets sent by the request (equivalent to the -l option of the PING command).

Related Topics

Monitoring Service Status
Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Service Memory Usage
Monitoring Service CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Service Failures


Monitoring TCP/IP Ports

The TCP/IP ports detection rules lets you check the connections to TCP/IP services via WinSock. ServiceKeeper checks that a TCP session can be opened on the specified port.

NOTE: ServiceKeeper also lets you monitor TCP/IP resources which are not running on a Windows platform. You can do this by using the Monitored resources feature.

'TCP/IP Ports' monitoring properties

  • Host(s): Enter the name of the server or the IP address of the service you would like to monitor (by default it will be set to the monitored computer name). You may specify more than one host using semi-columns as a separator. Example: www.site1.com;servers.site2.com;123.123.123.123
    Note: you can specify a specific TCP port at the same time you specify the host name or IP address. Example: server.site1.com:8080
  • Port: Specifies the socket port to connect to.
  • Timeout: Specifies the maximum time (in milliseconds) that the remote server can take to respond.

Related Topics
Monitoring Service Status
Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Service Memory Usage
Monitoring Service CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Service Failures


Monitoring Event Logs

Use this option to monitor event logs and filter out specific events that will trigger a recovery attempt. Events are recorded in separate logs such as the Application, Security and System logs to which are added Directory and File Replication service logs if the computer is the domain controller, as well as a DNS server log if the computer also acts as a Domain Name System server. Other event logs may be available on your servers.

Event logs can be viewed through the event viewer. The three main event types recorded in the logs are Error, Warning and Information.

'Event log' failure detection rule properties

  • Log (Application / Security / System). Services, applications, drivers or system kernels report events in either type.
  • Source: Usually the same name as the service name. You can visualize the source name of a service reporting to the various event logs from the Event Viewer (Source field), and match it from the list supplied by ServiceKeeper.
  • Detect failure on any error event: The log will be screened for Error events. Error events are significant problems, such as loss of data or loss of functionality. For example, if a service fails to load during startup, an Error will be logged.
  • Detect failure on any warning event: The log will be screened for Warning events. Warning events are not necessarily significant, but may indicate a possible future problem. For example, when disk space is low, a Warning will be logged.
  • Specific Event ID's You can have the log screened for any event, providing its ID. IDs can be visualized through the Event Viewer (Event field). This is useful if you want to detect one or more specific error, warning or information type events for a monitored service.

Related Topics
Monitoring Service Status
Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring Performance Counters
Monitoring Service Memory Usage
Monitoring Service CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Service Failures


Monitoring Performance Counters

Windows provides built-in performance objects with various counters that provide information about specific aspects of a system or service. Counters can be used to precisely detect all sorts of system component errors or threatening conditions.

Performance objects with their counters can be viewed and analyzed from the Performance administrative tool (Start / Run / Perfmon).

'Performance Counters' failure detection rule properties

In the example above, the Spooler service process will be detected as failing if more than 500 handles are allocated.
  • Select a counter using the browse ... button.
  • Set the failure condition (Equal, Greater, Less, etc.).
You may specify a duration for which the counter will be tested though the polling frequency tab. This option can be useful to test CPU usage. For example when testing the CPU usage of a specified service process, you could detect a failure if the usage is greater than 90% during 60 seconds. A process may occasionally peak to a high CPU usage, however if it stays high during a long period of time, then it could mean that something is wrong.

Selecting counters

The most widely used counters are listed in the following table. For a full description of the data provided by a particular counter associated with a performance object, click 'Explain' in the 'Add Counters' dialog box below:

  • Select the computer running the services you want to monitor. This requires the appropriate rights and proper ServiceKeeper license. Set the 'Counter detail' to set the definition of available counters.
  • Select the 'Performance object'. Refer to table below.
  • Select the counter available for the monitored object. Some counters require you to specify 'Instances'. Refer to table below.
Performance Object | Counter | Values
Memory |  |
 | Pages/sec | Pages/sec is the rate at which pages are read from or written to disk to resolve hard page faults. This counter is a primary indicator of the kinds of faults that cause system-wide delays. It is the sum of Memory\\Pages Input/sec and Memory\\Pages Output/sec. It is counted in numbers of pages, so it can be compared to other counts of pages, such as Memory\\Page Faults/sec, without conversion. It includes pages retrieved to satisfy faults in the file system cache (usually requested by applications) non-cached mapped memory files.
 | Pages Input/sec | Pages Input/sec is the rate at which pages are read from disk to resolve hard page faults. Hard page faults occur when a process refers to a page in virtual memory that is not in its working set or elsewhere in physical memory, and must be retrieved from disk. When a page is faulted, the system tries to read multiple contiguous pages into memory to maximize the benefit of the read operation. Compare the value of Memory\\Pages Input/sec to the value of Memory\\Page Reads/sec to determine the average number of pages read into memory during each read operation.
 | Page Faults/sec | Page Faults/sec is the average number of pages faulted per second. It is measured in number of pages faulted per second because only one page is faulted in each fault operation; hence this is also equal to the number of page fault operations. This counter includes both hard faults (those that require disk access) and soft faults (where the faulted page is found elsewhere in physical memory.) Most processors can handle large numbers of soft faults without significant consequence. However, hard faults, which require disk access, can cause significant delays.
Objects |  |
 | Processes | 'Processes' is the number of processes in the computer at the time of data collection. This is an instantaneous count, not an average over the time interval. Each process represents the running of a program.
 | Threads | 'Threads' is the number of threads in the computer at the time of data collection. This is an instantaneous count, not an average over the time interval. A thread is the basic executable entity that can execute instructions in a processor.
PhysicalDisk |  |
 | Disk Reads/sec | Disk Reads/sec is the rate of read operations on the disk.
 | Disk Writes/sec | Disk Writes/sec is the rate of write operations on the disk.
Process |  |
 | % Processor Time | % Processor Time is the percentage of elapsed time that all of process threads used the processor to execution instructions. An instruction is the basic unit of execution in a computer, a thread is the object that executes instructions, and a process is the object created when a program is run. Code executed to handle some hardware interrupts and trap conditions are included in this count.
 | Creating Process ID | The Creating Process ID value is the Process ID of the process that created the process. The creating process may have terminated, so this value may no longer identify a running process.
 | ID Process | The unique identifier of this process. ID Process numbers are reused, so they only identify a process for the lifetime of that process.
 | Page Faults/sec | Page Faults/sec is the rate at which page faults by the threads executing in this process are occurring. A page fault occurs when a thread refers to a virtual memory page that is not in its working set in main memory. This may not cause the page to be fetched from disk if it is on the standby list and hence already in main memory, or if it is in use by another process with whom the page is shared.
 | Working Set | Working Set is the current size, in bytes, of the Working Set of this process. The Working Set is the set of memory pages touched recently by the threads in the process. If free memory in the computer is above a threshold, pages are left in the Working Set of a process even if they are not in use. When free memory falls below a threshold, pages are trimmed from Working Sets. If they are needed they will then be soft-faulted back into the Working Set before leaving main memory.
Processor |  |
 | % Processor Time | % Processor Time is the percentage of elapsed time that the processor spends to execute a non-Idle thread. It is calculated by measuring the duration of the idle thread is active in the sample interval, and subtracting that time from interval duration. (Each processor has an idle thread that consumes cycles when no other threads are ready to run). This counter is the primary indicator of processor activity, and displays the average percentage of busy time observed during the sample interval. It is calculated by monitoring the time that the service is inactive, and subtracting that value from 100%.
 | Interrupts/sec | Interrupts/sec is the average rate, in incidents per second, at which the processor received and serviced hardware interrupts. It does not include deferred procedure calls (DPCs), which are counted separately. This value is an indirect indicator of the activity of devices that generate interrupts, such as the system clock, the mouse, disk drivers, data communication lines, network interface cards, and other peripheral devices. These devices normally interrupt the processor when they have completed a task or require attention. Normal thread execution is suspended. The system clock typically interrupts the processor every 10 milliseconds, creating a background of interrupt activity. This counter displays the difference between the values observed in the last two samples, divided by the duration of the sample interval.
Server |  |
 | Bytes Total/sec | The number of bytes the server has sent to and received from the network. This value provides an overall indication of how busy the server is.
 | Context Blocks Queued/sec | Context Blocks Queued per second is the rate at which work context blocks had to be placed on the server's FSP queue to await server action.
 | Errors Access Permissions | The number of times opens on behalf of clients have failed with STATUS_ACCESS_DENIED. Can indicate whether somebody is randomly attempting to access files in hopes of getting at something that was not properly protected.
 | Files Open | The number of files currently opened in the server. Indicates current server activity.
 | Files Opened Total | The number of successful open attempts performed by the server of behalf of clients. Useful in determining the amount of file I/O, determining overhead for path-based operations, and for determining the effectiveness of open locks.
 | Logon Total | Logon Total includes all interactive logons, network logons, service logons, successful logon, and failed logons since the machine is last rebooted.
 | Logon/sec | Logon/sec is the rate of all server logons.
 | Server Sessions | The number of sessions currently active in the server. Indicates current server activity.
System |  |
 | File Data Operations/ sec | File Data Operations/sec is the combined rate of read and write operations on all logical disks on the computer. This is the inverse of System: File Control Operations/sec. This counter displays the difference between the values observed in the last two samples, divided by the duration of the sample interval.
 | File Read Operations/sec | File Read Operations/sec is the combined rate of file system read requests to all devices on the computer, including requests to read from the file system cache. It is measured in numbers of reads. This counter displays the difference between the values observed in the last two samples, divided by the duration of the sample interval.
 | File Write Operations/sec | File Write Operations/sec is the combined rate of the file system Write Requests to all devices on the computer, including requests to write to data in the file system cache. It is measured in numbers of writes. This counter displays the difference between the values observed in the last two samples, divided by the duration of the sample interval.
 | System Up Time | System Up Time is the elapsed time (in seconds) that the computer has been running since it was last started. This counter displays the difference between the start time and the current time.
Thread |  |
 | % Processor Time | % Processor Time is the percentage of elapsed time that all of process threads used the processor to execution instructions. An instruction is the basic unit of execution in a computer, a thread is the object that executes instructions, and a process is the object created when a program is run. Code executed to handle some hardware interrupts and trap conditions are included in this count.

Related Topics

Monitoring Service Status
Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Service Memory Usage
Monitoring Service CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Service Failures


Monitoring Service Memory Usage

This feature lets you track down services memory leaks.
  • Select the failing condition (Equal, greater, etc.)
  • Check if ServiceKeeper must totalize the physical memory and the virtual memory.

Related Topics

Monitoring Service Status
Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Service CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Service Failures


Monitoring Service CPU Usage

Heavy CPU usage by a service may be sign of a failure and will slow down other system components. This feature will let you monitor the CPU usage of any running services.

Related Topics

Monitoring Service Status
Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Service Memory Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Service Failures


Using Script Return Values

This option lets you write your own VBScript to detect a possible failure. For example, you might write a script that connects to a database using ADO and check if there is more than x records pending. You can also use your script with WMI objects that let you access system values (event logs, registry, components, etc.).

'Script Return Value' failure detection rule properties

The following objects are available through the script:
  • Info.Computer: A string that is the name of computer where the service is running.
  • Info.Name: A string that is the service name (Short Name).
  • Info.DisplayName: A string that is the service display name.
  • Info.FailCount: A Long Integer that indicates how many times the service was detected to be failing.
  • Info.DesiredServiceState: A Long Integer that contains the desired service state. (1 for Stopped, 4 for Running, 7 for Paused)

If the service is considered as failing, False should be returned and Info.Error can be set with a clear text explanation describing the error.

Preprocessor Commands

Special preprocessor commands can be included in the script within comments:
  • '$$typelib:[file_name] gives you access to constants defined in a Type Library.
    Example: ADO constants can be used if the following is inserted at the beginning of the script:
    '$$typelib: c:\program files\common files\system\ado\msado15.dll
    or
    '$$typelib: c:\program files\common files\system\ado\msado25.tlb
  • '$$object: (ProgID|CLSID) : name to add a named object to the script context.
    Example: After the MyRecordset is defined, it can be used as follows:
    '$$object:ADODB.Recordset:MyRecordset
  • '$$include:[file_name] to include external code. The text line is replaced by the content of [file_name]
More about scripting: You can find resources explaining WMI, ADSI, and Windows Scripting from Microsoft's sites for developers: Windows Script Technologies and Active Directory Service Interfaces

Related Topics

Monitoring Service Status
Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Service Memory Usage
Monitoring Service CPU Usage
Using Program Exit Code
Monitoring The File System
Detecting Service Failures


Using Program Exit Code

Virtually all processes supply exit codes that tells whether an error as occurred. This feature allows a custom program to be executed, in order to check if the service is functioning properly. The exit code returned will be used by ServiceKeeper to detect a failure.

'Program Exit Code' failure detection rule properties

  • Program: Specifies the path to your executable that supplies the exit codes.
  • Parameters: Optional startup parameters.
  • Directory: Specifies the default folder the program is started in.
  • Detect failure if...: Specifies the failure conditions based on the exit code returned.
  • Wait for process termination during xxx seconds: If the process is not terminated when this period elapsed, ServiceKeeper will kill the process and will report a failure.

Related Topics

Monitoring Service Status
Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Service Memory Usage
Monitoring Service CPU Usage
Using Script Return Values
Monitoring The File System
Detecting Service Failures


File System Monitoring

Use this option to monitor files on your system. You can watch how many files are in a folder, the file sizes, the amount of free disk space, the last time a file was accessed or written and more.

Note: You can only set the following properties using the advanced mode. In wizard mode you can control the hard disk free space.

File System Monitoring properties

  • Search for files named: Specifies files that are being searched. You may use wildcards to specify a search pattern.
  • Look in: Specifies the root folder in which files are searched for. You may use wildcards to specify more than one folder.
  • Detect failure if: Select the failure condition.
  • Search subfolders: Specifies if sub folders of the 'Look in' folder must be searched.
  • At least one file must match the condition above: An error will be detected if at least one file matches the above condition.
  • All files must match the condition above: An error will be detected if all files matches the above condition.

Related Topics

Monitoring Service Status
Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Service Memory Usage
Monitoring Service CPU Usage
Using Script Return Values
Using Program Exit Code
Detecting Service Failures


Recovering Failed Services

About Recovering Failed Services

ServiceKeeper provides several recovery methods that can be combined together to fix or bypass a failed service. You can set the order in which the methods are applied and how many attempts are performed before trying the next recovery method.

To modify service recovery settings

1. Open the Service+ management console. Select a view in the tree view (left pane) and the server you wish to monitor in the details pane.

2. Right-click the service to be monitored and select properties or double-click on the service.

3. Click on the Monitor tab and the Recover choice to access the list of existing recovery actions.

You can add, modify, remove or set the order of recovery actions from right pane.

Each recovery action can individually be enabled or disabled using the check box next to it.

ServiceKeeper will cycle through the activated recovery actions until the service is fixed or recovery is abandoned.

Related Topics

Add a Recovery Action
Modify a Recovery Action
Remove a Recovery Action
About Monitoring Services


Add a Recovery Action

To add a recovery action for a service

1. Click on the Monitor tab and the Recover choice of the service properties to access the list of existing recovery actions.

2. Click on the New recovery action Wizard button [image].

3. Select the recovery action of your choice and click Next.

4. Enter a new description for your recovery action. Click Next.

5. Edit the recovery action settings.

Each recovery action type has its own settings. Please follow the links below for more information regarding the action settings.

Action types

No recovery Restarting service or set on schedule Starting another service Launching a program or a batch file Running a script Recovering the file system Restarting a computer Stopping service monitoring

Related Topics

About Recovering Failed Services


Modify a Recovery Action

To modify a recovery action for a service

1. Click on the Monitor tab and the Recover choice to access the list of existing recovery actions.

2. Select the action you wish to modify.

3. Click on the Properties icon [image] or double-click the action.

Each action type has its own settings. Please follow the links below to see detailed information regarding the action settings.

Action types

No recovery Restarting service or set on schedule Starting another service Launching a program or a batch file Running a script Recovering the file system Restarting a computer Stopping service monitoring

Related Topics
About Recovering Failed Services


Remove a Recovery Action

To remove a recovery action

1. Click on the Monitor tab and the Recover choice of the Service properties. This gives you access to the list of existing actions.

2. Select the action you want to remove and click on the Remove button [image] or press the Delete key of your keyboard.

Related Topics

About Recovering Failed Services


Abandoning recovery

No recovery

The action does nothing. Only a notification is issued if configured when the monitored service is detected as failed.

For example, this action could be used by out-of-office administrators along with notifications posted to an HTML log. Since the service remains in a failed condition, it will be detected again as so, the recovery action will be applied again. A new entry will be added to the log that could be accessed through a web site.

'No recovery' action properties

  • Description: You can change the description if needed.
  • Execute this action when the failure detection counter reaches... until...: The two values you choose in this section determine when this recovery action will take place. Each time the failure conditions defined in the detection rule are met the failure detection counter is incremented and its value is checked against the two values you entered to determine whether this recovery action needs to be performed or not.
    The failure detection counter is automatically reset to zero after no failure has been detected for a given period of time. This period of time can be set through the advanced parameters.
  • Stop recovery process if this action succeeds: This option tells ServiceKeeper to stop the succession of recovery actions if this one is successful.

Related Topics
Restarting service or set on schedule
Starting another service
Launching a program or a batch file
Running a script
Recovering the file system
Restarting a computer
Stopping service monitoring
About Recovering Failed Services


Restart the Service or Set on Schedule

Restarting monitored service that failed is the standard recovery method. It cleans up resources and should solve process problems related to memory leaks in otherwise healthy services. You could this recovery action as the first of your recovery scheme.

'Restart the service or set on schedule' action properties

  • Description: You can change the recovery action description if needed.
  • Execute this action when the failure detection counter reaches... until...: The two values you choose in this section determine when this recovery action will take place. Each time the failure conditions defined in the detection rule are met the failure detection counter is incremented and its value is checked against the two values you entered to determine whether this recovery action needs to be performed or not.
    The failure detection counter is automatically reset to zero after no failure has been detected for a given period of time. This period of time can be set through the advanced parameters.
  • Stop recovery process if this action succeeds: This option tells ServiceKeeper to stop the succession of recovery actions if this one is successful.
  • Startup parameters: Enter service startup parameters (if required)
  • Start dependent services configured for automatic startup: You can ask ServiceKeeper to start services configured for automatic startup that are dependent on the current service. If service B is dependent on service A, when A will be stopped, B will also be stopped. If A is started again, ServiceKeeper will also start service B.
  • Start dependent services that were previously started: When restarting the service, ServiceKeeper memorizes all dependent services that were already started and restart them.
  • Kill the service process if the service cannot be stopped: When a service fails, a proper service stop request will not always work. By checking this option, the service recovery engine will terminate the service process, avoiding a server reboot. Note that this recovery method is only available for services running on the same machine as ServiceKeeper.
  • Delay before starting dependent services: ServiceKeeper will wait for the specified number of seconds or minutes before restarting the dependent services.

Related Topics

No recovery
Starting another service
Launching a program or a batch file
Running a script
Recovering the file system
Restarting a computer
Stopping service monitoring
About Recovering Failed Services


Starting Another Service

Start a specific service on the local machine or on a remote computer. This action let's you start a redundant service on the local or a remote system in case you can't recover the original service

'Start another service' action properties

  • Description: You can change the recovery action description if needed.
  • Execute this action when the failure detection counter reaches... until...: The two values you choose in this section determine when this recovery action will take place. Each time the failure conditions defined in the detection rule are met the failure detection counter is incremented and its value is checked against the two values you entered to determine whether this recovery action needs to be performed or not.
    The failure detection counter is automatically reset to zero after no failure has been detected for a given period of time. This period of time can be set through the advanced parameters.
  • Stop recovery process if this action succeeds: This option tells ServiceKeeper to stop the succession of recovery actions if this one is successful.
  • Computer: Select the computer hosting the service to be started.
  • Service: Select the service to be started. The dropdown list shows the name of all the services, listed alphabetically.
  • Parameters: Enter service startup parameters if required.
  • Restart service if the service is already running: The service to be started will be restarted if it is already running.

Related Topics

No recovery
Restarting service or set on schedule
Launching a program or a batch file
Running a script
Recovering the file system
Restarting a computer
Stopping service monitoring
About Recovering Failed Services


Launching a Program or a Batch File

Use this action to start a custom program or a batch file that will produce the necessary recovery actions.

'Launch a Program or a Batch File' action properties

  • Description: You can change the recovery action description if needed.
  • Execute this action when the failure detection counter reaches... until...: The two values you choose in this section determine when this recovery action will take place. Each time the failure conditions defined in the detection rule are met the failure detection counter is incremented and its value is checked against the two values you entered to determine whether this recovery action needs to be performed or not.
    The failure detection counter is automatically reset to zero after no failure has been detected for a given period of time. This period of time can be set through the advanced parameters.
  • Stop recovery process if this action succeeds: This option tells ServiceKeeper to stop the succession of recovery actions if this one is successful.
  • Program: Select or specify the full path to the executable. If the executable is on another machine, use a UNC path.
  • Parameters: You may pass on the following parameters to your executable:
    • %FailCount%: Service failure count.
    • %FailReason%: Service failure cause as detected.
      • 1 Service not started/not on schedule
      • 2 Specific process exit code
      • 3 TCP/IP service
      • 4 Performance counters
      • 5 Event Log
      • 6 for Script
      • 7 for File System
    • %FailComputer%: Computer name running the failed service.
    • %FailService%: Failed service name (ShortName).
    • %FailServiceDisplayName%: Failed service Display Name.
    These keywords above are also set as process environment variables.
  • Directory: Current directory of the process (the Start In directory).
  • Wait for process termination during xxx seconds: If the process is not terminated when this period elapsed, ServiceKeeper will kill the process. If you do not want to wait for process termination, set this value to 0.

Related Topics

No recovery
Restarting service or set on schedule
Starting another service
Launching a program or a batch file
Recovering the file system
Running a script
Restarting a computer
Stopping service monitoring
About Recovering Failed Services


Running a Script

This option let you write a script (VBScript) to recover failing services. For example, you could write a script that will delete a set of files and then attempt to start the service.

'Run a script' action properties

  • Description: You can change the recovery action description if needed.
  • Execute this action when the failure detection counter reaches... until...: The two values you choose in this section determine when this recovery action will take place. Each time the failure conditions defined in the detection rule are met the failure detection counter is incremented and its value is checked against the two values you entered to determine whether this recovery action needs to be performed or not.
    The failure detection counter is automatically reset to zero after no failure has been detected for a given period of time. This period of time can be set through the advanced parameters.
  • Stop recovery process if this action succeeds: This option tells ServiceKeeper to stop the succession of recovery actions if this one is successful.
The script has access to the following objects:
  • Info.Computer: A string that is the name of the computer where the service is running.
  • Info.Name: A string that is the service name.
  • Info.DisplayName: A string that is the service display name.
  • Info.FailCount: A Long Integer that indicates how many time the service was detected to be failing.
  • Info.FailReason: A Long Integer that indicates which error detection method triggered the recovery. It can be any of the following values:
    • 1 for Service not started or not on schedule
    • 2 for Process Exit Code
    • 3 for TCP/IP Failure
    • 4 for Performance Counters
    • 5 for Event Log
    • 6 for Script
    • 7 for File System
  • Info.DesiredServiceState: A Long Integer that contains the desired state. (1 for Stopped, 4 for Running, 7 for Paused)
If the service recovery fails, False should be returned and Info.Error can be set with a text describing the error.

Preprocessor Commands:

Several preprocessor commands can be used in a comment line:

  • '$$typelib:[file_name] to access constants defined in a Type Library.
    Example: ADO constants can be used if the following is inserted at the beginning of the script:
    '$$typelib: c:\program files\common files\system\ado\msado15.dll
    or
    '$$typelib: c:\program files\common files\system\ado\msado25.tlb
  • '$$object: (ProgID|CLSID) : name to add an named object to the script context.
    Example: After the MyRecordset is defined, it can be used as follows:
    '$$object:ADODB.Recordset:MyRecordset
  • '$$include:[file_name] to include external code. The line is replaced by the content of [file_name]
More about scripting: You can find resources explaining WMI, ADSI, and Windows Scripting from Microsoft's sites for developers: Windows Script Technologies and Active Directory Service Interfaces

Related Topics

No recovery
Restarting service or set on schedule
Starting another service
Launching a program or a batch file
Recovering the file system
Restarting a computer
Stopping service monitoring
About Recovering Failed Services


File System Recovering

File System Recovery

Using this option, you can perform several actions such as copying a file to a different folder, moving a file, deleting a file and more.

'File System Recovery' properties

  • Description: You can change the recovery action description if needed.
  • Execute this action when the failure detection counter reaches... until...: The two values you choose in this section determine when this recovery action will take place. Each time the failure conditions defined in the detection rule are met the failure detection counter is incremented and its value is checked against the two values you entered to determine whether this recovery action needs to be performed or not.
    The failure detection counter is automatically reset to zero after no failure has been detected for a given period of time. This period of time can be set through the advanced parameters.
  • Stop recovery process if this action succeeds: This option tells ServiceKeeper to stop the succession of recovery actions if this one is successful.
  • File(s): Specify which file(s) you need to copy, move or delete. You may use wildcards to specify a search pattern.
  • From: Specify the source folder from where you will copy, move or delete files(s).
  • To :Specify the target folder in which you will copy or move file(s).
  • Move files to recycle bin: Enable this option so that deleted files will be moved to the Recycled Bin. Note that each users on a system has it's own Recycled Bin, therefore files will be moved to the user account that was specified to install the ServiceKeeper service during setup.
    Warning: This option will only work with local files
  • Search subfolders: Enable this option to include sub folders.
  • Ignore errors: When this option is enabled, ServiceKeeper will ignore errors and continue to process all files. Otherwise, ServiceKeeper will stop immediately if an error is encountered.
  • Take action on files matching the following condition: this condition lets you act on a subset of files located in a directory. For instance you can specify to delete files that have not been accessed from one week or archive files that have not been modified since two days.

Related Topics

No recovery
Starting another service
Restarting service or set on schedule
Starting another service
Launching a program or a batch file
Restarting a computer
Stopping service monitoring
About Recovering Failed Services


Restarting the Computer

You typically use this option to recover after all other actions have failed.

'Restart the Computer' action properties

  • Description: You can change the recovery action description if needed.
  • Execute this action when the failure detection counter reaches... until...: The two values you choose in this section determine when this recovery action will take place. Each time the failure conditions defined in the detection rule are met the failure detection counter is incremented and its value is checked against the two values you entered to determine whether this recovery action needs to be performed or not.
    The failure detection counter is automatically reset to zero after no failure has been detected for a given period of time. This period of time can be set through the advanced parameters.
  • Stop recovery process if this action succeeds: This option tells ServiceKeeper to stop the succession of recovery actions if this one is successful.
  • Force application to close down: This will close down applications even if they are prompting users, requesting for example: 'Would you like to save changes?'

Related Topics

No recovery
Restarting service or set on schedule
Starting another service
Launching a program or a batch file
Running a script
Recovering the file system
Stopping service monitoring
About Recovering Failed Services


Stopping Service Monitoring

This option tells ServiceKeeper to stop monitoring the service. The current service state is ignored until the ServiceKeeper service is restarted or the service monitoring settings are changed.

'Stop service monitoring' action properties

  • Description: You can change the recovery action description if needed.
  • Execute this action when the failure detection counter reaches... until...: The two values you choose in this section determine when this recovery action will take place. Each time the failure conditions defined in the detection rule are met the failure detection counter is incremented and its value is checked against the two values you entered to determine whether this recovery action needs to be performed or not.
    The failure detection counter is automatically reset to zero after no failure has been detected for a given period of time. This period of time can be set through the advanced parameters.

Related Topics

No recovery
Restarting service or set on schedule
Starting another service
Launching a program or a batch file
Running a script
Recovering the file system
Restarting a computer
About Recovering Failed Services


Set Error Notifications

Configuring notifications

ServiceKeeper lets you choose from various methods of notification that can be combined together to ensure you will receive an update on your server incidents and corrective actions, wherever you are (e.g. Mail, Web, pager, Windows Administrative Alerts, etc.).

To configure notifications

1. Open the Service+ management console. Select a view in the tree view (left pane) and the server you wish to monitor in the details pane.

2. Right-click the service to be monitored and select properties or double-click on the service.

3. Click on the Monitor tab and the Notify choice to access the list of notification means offered by ServiceKeeper.

  • Notify using ServiceKeeper default settings: This option let's you use the ServiceKeeper default settings instead of having to specify specific notifications for this particular service. You may have a preferred notification method that you want to be used independently of what resource is monitored. In that case you should configure the notification methods via the ServiceKeeper default settings.
  • Select the notification method in the list and click on the Properties button [image] or double-click the selection.
    Each notification method has its own settings. Please follow the links below for more information regarding the notification settings.

    • Notification methods

    Sending an email (SMTP) Sending a Window administrative alert Launching a program or a batch file Sending an SNMP trap Running a script Log to an HTML log file Log to an RSS feed Voice notification (Experimental)

Related topics

About Monitoring Services


Sending an email

Sending an email (SMTP)

An SMTP email will be sent when an error is detected and after the recovery action was initiated. Information is displayed inside the message body as a log, with errors and actions queued and following the monitored service ShortName and computer name.

To edit the Send an email (SMTP) notification properties

1. From the notification list select the Send an email (SMTP) notification and click on the Properties button [image] or double-click the notification.

  • From: E-Mail address of the mail originator. You can specify any legitimate originator.
  • To: Recipient who will receive the notification. You may specify more than one recipient using a comma as a separator.
  • Subject: The message subject
  • Charset: The MIME encoding charset. If "No encoding" is selected, the message will not be encoded. This option can be useful when sending messages to systems that are not compatible with MIME content (Pager, SMS, etc.).
  • Format: Select the format in which the message will be sent (Note: 'Subject Only' will add the notification message to the subject).
  • SMTP server: Name of the SMTP server for outgoing mails. Alternatively you can enter the IP address of your server.
  • Authentication: Select the authentication method and enter the login information. See your network administrator for details.
  • Message: You can enter a customized message that will be sent when a notification occurs. Some keywords can be inserted in your text. They will be replaced by ServiceKeeper just before it will run the notification. The available keywords are:
    • %ErrorMessage% : The message that ServiceKeeper normally sends
    • %Date% : The notification date
    • %Time% : The notification time
    • %StartMonitoringDate% : The date from which the service began to be monitored
    • %UpTime% : The period during which the service has been up
    • %DownTime% : The period during which the service has been down
    • %Availability% : The service percentage of availability (100 * UpTime) / (UpTime + DownTime)
    • %LastKnownRunningState% : The date on which the service was detected up for the last time
    • %LastFailureDate% : The last date on which a failure was detected
    • %FailureCount% : The failure count of the service
    • %FailureCountSinceRestart% : The failure count of the service since last ServiceKeeper restart
    • %LastSucceededRecoveryDate% : The date of the last succeeded recovery attempt
    • %LastFailedRecoveryDate% : The date of the last failed recovery attempt
    • %FailedRecoveryCount% : The count of failed recovery
    • %FailedRecoveryCountSinceRestart% : The count of failed recovery since last ServiceKeeper restart
    • %SucceededRecoveryCount% : The count of succeeded recovery
    • %SucceededRecoveryCountSinceRestart% : The count of succeeded recovery since last ServiceKeeper restart
    • %Running% : 1 if the service is up (0 if it is down)
    • %Failure% : 1 if a failure was detected (0 if no failure was detected)
    • %RecoverySucceeded% : 1 if the recovery attempt succeeded (0 if the recovery attempt failed or if no recovery was tried)
    • %RecoveryFailed% : 1 if the recovery attempt failed (0 if the recovery attempt succeeded or if no recovery was tried)

Related Topics

Sending a Window administrative alert
Launching a program or a batch file
Sending an SNMP trap
Running a script
Log to an HTML log file
Log to an RSS feed
Voice notification (Experimental)
Configuring notifications


Sending an admin alert

Sending a Windows administrative alert

This notification method will display a warning using the Messenger and Alerter services. Both services should be started on the receiving computer if the administrative alerts are sent to another machine.

To edit the 'Send a Windows administrative alert' notification properties

1. From the notification list select the Send a Windows administrative alert notification and click on the Properties button [image] or double-click the notification.

2. Enter the name of the user account or the computer name that should receive the message. You can specify more than one user account or computer using commas as separators (e.g. Admin,Jim,Bob)

3. Message: You can enter a customized message that will be sent when a notification occurs. Some keywords can be inserted in your text. They will be replaced by ServiceKeeper just before it will run the notification. The available keywords are:
  • %ErrorMessage% : The message that ServiceKeeper normally sends
  • %Date% : The notification date
  • %Time% : The notification time
  • %StartMonitoringDate% : The date from which the service began to be monitored
  • %UpTime% : The period during which the service has been up
  • %DownTime% : The period during which the service has been down
  • %Availability% : The service percentage of availability (100 * UpTime) / (UpTime + DownTime)
  • %LastKnownRunningState% : The date on which the service was detected up for the last time
  • %LastFailureDate% : The last date on which a failure was detected
  • %FailureCount% : The failure count of the service
  • %FailureCountSinceRestart% : The failure count of the service since last ServiceKeeper restart
  • %LastSucceededRecoveryDate% : The date of the last succeeded recovery attempt
  • %LastFailedRecoveryDate% : The date of the last failed recovery attempt
  • %FailedRecoveryCount% : The count of failed recovery
  • %FailedRecoveryCountSinceRestart% : The count of failed recovery since last ServiceKeeper restart
  • %SucceededRecoveryCount% : The count of succeeded recovery
  • %SucceededRecoveryCountSinceRestart% : The count of succeeded recovery since last ServiceKeeper restart
  • %Running% : 1 if the service is up (0 if it is down)
  • %Failure% : 1 if a failure was detected (0 if no failure was detected)
  • %RecoverySucceeded% : 1 if the recovery attempt succeeded (0 if the recovery attempt failed or if no recovery was tried)
  • %RecoveryFailed% : 1 if the recovery attempt failed (0 if the recovery attempt succeeded or if no recovery was tried)

Related Topics

Sending an email (SMTP)
Launching a program or a batch file
Sending an SNMP trap
Running a script
Log to an HTML log file
Log to an RSS feed
Voice notification (Experimental)
Configuring notifications


Launching an executable

This notification can be used to launch a pager program that has a command line interface for instance.

To edit the 'Launch a program or a batch file' notification properties

1. From the notification list select the Launch a program or a batch file notification and click on the Properties button [image] or double-click the notification.

  • Program: Specify the full path to the executable. If the executable is on remote computer use the UNC path.
  • Parameters: You may pass the following parameters to your executable:
    • %MessageFile%: The name of a file that contains the error message.
    • %Message%: The actual error message. Carriage Returns are replaced by spaces.
    • %Date% : The notification date
    • %Time% : The notification time
    • %StartMonitoringDate% : The date from which the service began to be monitored
    • %UpTime% : The period during which the service has been up
    • %DownTime% : The period during which the service has been down
    • %Availability% : The service percentage of availability (100 * UpTime) / (UpTime + DownTime)
    • %LastKnownRunningState% : The date on which the service was detected up for the last time
    • %LastFailureDate% : The last date on which a failure was detected
    • %FailureCount% : The failure count of the service
    • %FailureCountSinceRestart% : The failure count of the service since last ServiceKeeper restart
    • %LastSucceededRecoveryDate% : The date of the last succeeded recovery attempt
    • %LastFailedRecoveryDate% : The date of the last failed recovery attempt
    • %FailedRecoveryCount% : The count of failed recovery
    • %FailedRecoveryCountSinceRestart% : The count of failed recovery since last ServiceKeeper restart
    • %SucceededRecoveryCount% : The count of succeeded recovery
    • %SucceededRecoveryCountSinceRestart% : The count of succeeded recovery since last ServiceKeeper restart
    • %Running% : 1 if the service is up (0 if it is down)
    • %Failure% : 1 if a failure was detected (0 if no failure was detected)
    • %RecoverySucceeded% : 1 if the recovery attempt succeeded (0 if the recovery attempt failed or if no recovery was tried)
    • %RecoveryFailed% : 1 if the recovery attempt failed (0 if the recovery attempt succeeded or if no recovery was tried)
  • Directory: Current starting directory of the process (the Start In directory).
  • Wait for process termination during xxx seconds: If the process is not terminated when this period elapsed, ServiceKeeper will kill the process. If you do not want to wait for process termination, set this value to 0.
  • Message: You can enter a customized message that will be sent when a notification occurs. Some keywords can be inserted in your text. They will be replaced by ServiceKeeper just before it will run the notification. The available keywords are:
    • %ErrorMessage% : The message that ServiceKeeper normally sends
    • %Date% : The notification date
    • %Time% : The notification time
    • %StartMonitoringDate% : The date from which the service began to be monitored
    • %UpTime% : The period during which the service has been up
    • %DownTime% : The period during which the service has been down
    • %Availability% : The service percentage of availability (100 * UpTime) / (UpTime + DownTime)
    • %LastKnownRunningState% : The date on which the service was detected up for the last time
    • %LastFailureDate% : The last date on which a failure was detected
    • %FailureCount% : The failure count of the service
    • %FailureCountSinceRestart% : The failure count of the service since last ServiceKeeper restart
    • %LastSucceededRecoveryDate% : The date of the last succeeded recovery attempt
    • %LastFailedRecoveryDate% : The date of the last failed recovery attempt
    • %FailedRecoveryCount% : The count of failed recovery
    • %FailedRecoveryCountSinceRestart% : The count of failed recovery since last ServiceKeeper restart
    • %SucceededRecoveryCount% : The count of succeeded recovery
    • %SucceededRecoveryCountSinceRestart% : The count of succeeded recovery since last ServiceKeeper restart
    • %Running% : 1 if the service is up (0 if it is down)
    • %Failure% : 1 if a failure was detected (0 if no failure was detected)
    • %RecoverySucceeded% : 1 if the recovery attempt succeeded (0 if the recovery attempt failed or if no recovery was tried)
    • %RecoveryFailed% : 1 if the recovery attempt failed (0 if the recovery attempt succeeded or if no recovery was tried)

Related Topics

Sending an email (SMTP)
Sending a Window administrative alert
Sending an SNMP trap
Running a script
Log to an HTML log file
Log to RSS feed
Voice notification (Experimental)
Configuring notifications


Sending an SNMP trap

Simple Network Management Protocol (SNMP) is a network protocol used to provide status information about a host on a TCP/IP network. A trap is a message sent to a management system by an agent running on a host where an event has occurred. ServiceKeeper is an SNMP agent that reports service failures to your SNMP management system.

ServiceKeeper's traps contain the error message that is reported in the event log. Active+ Software SMI Network Management Private Enterprise Code is 6792. The TRAP has 1 parameter of type OCTETSTRING. The OID for this parameter is: .1.3.6.1.4.1.6792.1.1.0

To activate the 'Send an SNMP trap' notification

1. From the notification list select the Send an SNMP trap notification and check the Enabled option to enable notifications. There are no properties to configure. The SNMP service must be running.

Related Topics

Sending an email (SMTP)
Sending a Window administrative alert
Launching a program or a batch file
Running a script
Log to an HTML log file
Log to an RSS feed
Voice notification (Experimental)
Configuring notifications


Running a script

This feature lets you write a script (VBScript) to send notification messages.

To edit the 'Run a script' notification properties

1. From the notification list select the Run a script notification and click on the Properties button [image] or double-click the notification.

  • Message: You can enter a customized message that will be sent when a notification occurs. Some keywords can be inserted in your text. They will be replaced by ServiceKeeper just before it will run the notification. The available keywords are:
    • %ErrorMessage% : The message that ServiceKeeper normally sends
    • %Date% : The notification date
    • %Time% : The notification time
    • %StartMonitoringDate% : The date from which the service began to be monitored
    • %UpTime% : The period during which the service has been up
    • %DownTime% : The period during which the service has been down
    • %Availability% : The service percentage of availability (100 * UpTime) / (UpTime + DownTime)
    • %LastKnownRunningState% : The date on which the service was detected up for the last time
    • %LastFailureDate% : The last date on which a failure was detected
    • %FailureCount% : The failure count of the service
    • %FailureCountSinceRestart% : The failure count of the service since last ServiceKeeper restart
    • %LastSucceededRecoveryDate% : The date of the last succeeded recovery attempt
    • %LastFailedRecoveryDate% : The date of the last failed recovery attempt
    • %FailedRecoveryCount% : The count of failed recovery
    • %FailedRecoveryCountSinceRestart% : The count of failed recovery since last ServiceKeeper restart
    • %SucceededRecoveryCount% : The count of succeeded recovery
    • %SucceededRecoveryCountSinceRestart% : The count of succeeded recovery since last ServiceKeeper restart
    • %Running% : 1 if the service is up (0 if it is down)
    • %Failure% : 1 if a failure was detected (0 if no failure was detected)
    • %RecoverySucceeded% : 1 if the recovery attempt succeeded (0 if the recovery attempt failed or if no recovery was tried)
    • %RecoveryFailed% : 1 if the recovery attempt failed (0 if the recovery attempt succeeded or if no recovery was tried)

The script has access to the following objects and properties:

  • Info.Message: A string that contains the error message, this string may include CR LF.
    If the notification fails, False should be returned and Info.Error can be set with a text describing the error.

Preprocessor Directives:

Special preprocessor directives can be included in comment line:
  • '$$typelib:[file_name] to access to constants defined in a Type Library.
    Example: ADO constants can be used if the following is inserted at the beginning of the script:
    '$$typelib: c:\program files\common files\system\ado\msado15.dll
    or
    '$$typelib: c:\program files\common files\system\ado\msado25.tlb
  • '$$object: (ProgID|CLSID) : name to add an named object to the script context.
    Example: After the MyRecordset is defined, it can be used as follows:
    '$$object:ADODB.Recordset:MyRecordset
  • '$$include:[file_name] to include external code. The line is replaced by the content of [file_name]
More about scripting: You can find resources explaining WMI, ADSI, and Windows Scripting from Microsoft's sites for developers: Windows Script Technologies and Active Directory Service Interfaces

Related Topics

Sending an email (SMTP)
Sending a Window administrative alert
Launching a program or a batch file
Sending an SNMP trap
Log to an HTML log file
Log to an RSS feed
Voice notification (Experimental)
Configuring notifications


Writing to HTML event log

Logging to an HTML log file

This notification method may be used to allow administrators to check the ServiceKeeper event log from anywhere, using a web browser.

To edit the 'Log to an HTML log file' notification properties

1. From the notification list select the Logging to an HTML log file notification and click on the Properties button [image] or double-click the notification.

  • HTML File: Points to an HTML file that will contain the log. This file should be in a web site directory. A UNC path must be used to store the file on a remote server. If the file does not exist, it will be created, if the file does exist, events are appended to the end of the file
  • Message: You can enter a customized message that will be sent when a notification occurs. Some keywords can be inserted in your text. They will be replaced by ServiceKeeper just before it will run the notification. The available keywords are:
    • %ErrorMessage% : The message that ServiceKeeper normally sends
    • %Date% : The notification date
    • %Time% : The notification time
    • %StartMonitoringDate% : The date from which the service began to be monitored
    • %UpTime% : The period during which the service has been up
    • %DownTime% : The period during which the service has been down
    • %Availability% : The service percentage of availability (100 * UpTime) / (UpTime + DownTime)
    • %LastKnownRunningState% : The date on which the service was detected up for the last time
    • %LastFailureDate% : The last date on which a failure was detected
    • %FailureCount% : The failure count of the service
    • %FailureCountSinceRestart% : The failure count of the service since last ServiceKeeper restart
    • %LastSucceededRecoveryDate% : The date of the last succeeded recovery attempt
    • %LastFailedRecoveryDate% : The date of the last failed recovery attempt
    • %FailedRecoveryCount% : The count of failed recovery
    • %FailedRecoveryCountSinceRestart% : The count of failed recovery since last ServiceKeeper restart
    • %SucceededRecoveryCount% : The count of succeeded recovery
    • %SucceededRecoveryCountSinceRestart% : The count of succeeded recovery since last ServiceKeeper restart
    • %Running% : 1 if the service is up (0 if it is down)
    • %Failure% : 1 if a failure was detected (0 if no failure was detected)
    • %RecoverySucceeded% : 1 if the recovery attempt succeeded (0 if the recovery attempt failed or if no recovery was tried)
    • %RecoveryFailed% : 1 if the recovery attempt failed (0 if the recovery attempt succeeded or if no recovery was tried)

Related Topics

Sending an email (SMTP)
Sending a Window administrative alert
Launching a program or a batch file
Sending an SNMP trap
Running a script
Log to an RSS feed
Voice notification (Experimental)
Configuring notifications


Voice Notification (Experimental)

This notification method may be used by an administrator to be vocally notified using the Microsoft Agent or through a phone call.
This feature requires a modem that supports voice functionalities. Most modems offer voice functionalities but since it is a rarely used feature we have experienced some troubles with some modems and this is why we consider this feature to be experimental.

To edit the 'Voice Notification' notification properties

1. From the notification list select the Voice Notification option and click the Properties [image] button.

  • Use the Microsoft Agent: This option will activate the Microsoft Agent notification. Select the agent voice and click Properties [image] to modify the agent parameters.

    - Agent parameters:

    • Voice: Select the voice you wish to give to the agent. You may visit the Microsoft Agent site to download more voices.
    • Minimum time between two notifications: Enter the time to wait in minutes between two notifications. Notification that occurs during that time will be pilled up and delivered at once.
    • Notification schedule: This option let you specify when notifications should execute. For example you could disallow voice notifications at night and during lunch breaks.
  • Place a phone call: chose this option if you want to receive voice notifications through a phone call. Select the phone call receiver and click the Properties [image] button to modify the receiver parameters. You may add more receivers by pressing the 'Add a receiver...' button.

    - Phone call receiver properties:

    • Name: Receiver name.
    • Description: Receiver description.
    • Voice: Select the voice you wish to use during the phone call. Note that it is not possible to list voices when administrating ServiceKeeper remotely.
    • Modem: Select the modem you wish to use to place the phone call. Modems cannot be listed when administrating ServiceKeeper remotely.
    • Phone number: Receiver phone number.
    • Minimum time between two calls: Enter the time to wait in minutes between two phone calls. Notification that occurs during that time will be pilled up and delivered at once.
    • Call schedule: This option let you specify when notifications should execute. For example you could disallow voice notifications at night and during lunch breaks.

Related topics

Sending an email (SMTP)
Sending a Window administrative alert
Launching a program or a batch file
Sending an SNMP trap
Running a script
Log to an HTML log file
Log to an RSS feed
Configuring notifications


Log to an RSS feed

Logging to an RSS feed

This notification method may be used to allow administrators to check the ServiceKeeper event log from anywhere, using an RSS reader.

To edit the 'Log to an RSS feed' notification properties

1. From the notification list select the Logging to an RSS feed notification and click on the Properties button [image] or double-click the notification.

  • RSS Feed File: Points to an RSS file (XML) that will contain the log. This file should be in a web site directory. A UNC path must be used to store the file on a remote server. If the file does not exist, it will be created, if the file does exist, events are appended to the end of the file
  • Message: You can enter a customized message that will be sent when a notification occurs. Some keywords can be inserted in your text. They will be replaced by ServiceKeeper just before it will run the notification. The available keywords are:
    • %ErrorMessage% : The message that ServiceKeeper normally sends
    • %Date% : The notification date
    • %Time% : The notification time
    • %StartMonitoringDate% : The date from which the service began to be monitored
    • %UpTime% : The period during which the service has been up
    • %DownTime% : The period during which the service has been down
    • %Availability% : The service percentage of availability (100 * UpTime) / (UpTime + DownTime)
    • %LastKnownRunningState% : The date on which the service was detected up for the last time
    • %LastFailureDate% : The last date on which a failure was detected
    • %FailureCount% : The failure count of the service
    • %FailureCountSinceRestart% : The failure count of the service since last ServiceKeeper restart
    • %LastSucceededRecoveryDate% : The date of the last succeeded recovery attempt
    • %LastFailedRecoveryDate% : The date of the last failed recovery attempt
    • %FailedRecoveryCount% : The count of failed recovery
    • %FailedRecoveryCountSinceRestart% : The count of failed recovery since last ServiceKeeper restart
    • %SucceededRecoveryCount% : The count of succeeded recovery
    • %SucceededRecoveryCountSinceRestart% : The count of succeeded recovery since last ServiceKeeper restart
    • %Running% : 1 if the service is up (0 if it is down)
    • %Failure% : 1 if a failure was detected (0 if no failure was detected)
    • %RecoverySucceeded% : 1 if the recovery attempt succeeded (0 if the recovery attempt failed or if no recovery was tried)
    • %RecoveryFailed% : 1 if the recovery attempt failed (0 if the recovery attempt succeeded or if no recovery was tried)

Related Topics

Sending an email (SMTP)
Sending a Window administrative alert
Launching a program or a batch file
Sending an SNMP trap
Running a script
Log to an HTML log file
Voice notification (Experimental)
Configuring notifications


Setting advanced parameters

Advanced parameters

The advanced parameters let you fine tune how the recovery actions are performed.

To modify advanced parameters

1. Open the Service+ management console. Select a view in the tree view (left pane) and the server you wish to monitor in the details pane.

2. Right-click the service to be monitored and select properties or double-click on the service.

3. Click on the Monitor tab and the Advanced choice to access the advanced parameters.

  • Delay between recovery attempts: ServiceKeeper will wait for the specified number of minutes or seconds before going to the next recovery action.
  • Reset failure detection count after: After the specified number of minutes or seconds of trouble free execution, the failure detection counter is reset to zero. The failure detection counter is used to determine which recovery action takes place each time a failure is detected. If failure conditions are not corrected the failure is detected again and the failure detection counter is incremented. Thus a different recovery action can be performed.
  • Pending state timeout: If a service remains in a pending state for longer than the specified number of minutes or seconds, the service will be terminated (process killed). A service is in a pending state when it is starting, stopping or pausing. The most common pending state failure is when a service is stopped and stays in a stop pending state forever.

Related Topics

About monitoring Services


About Resource Monitoring

ServiceKeeper provides a unique set of tools for monitoring resources other than Windows services on your network. TCP/IP socket and protocol behavior, event logs, performance counters and codes returned by specific programs or scripts can be monitored independently of the monitoring of services. Active+ Software will regularly add more types of resource monitoring to ServiceKeeper.

A successful monitoring is one that is able without disruption of service to automatically:

  • Detect resource failures or undesirable conditions.
  • Correct specific problems or initiate alternative actions when recovery is not possible.
  • Notify of incidents, failures and steps taken to correct problems.
Windows provides several monitors that help you easily pinpoint process performance and analyze behavior. If you are running a crash-prone gateway that doesn't properly close handles and develops memory leaks, you can use the Performance Monitor to determine counters threshold, or the Event Viewer to retrieve warning IDs that are characteristic of a recurring unstable condition. This information is used in ServiceKeeper to precisely automate preventive actions.

Resources are monitored through monitored resource objects. See Create a monitored resource object for more information about monitored resource objects.

Related Topics

Create a monitored resource object
Detect Resource Failures
Recover Failed Resources
Set Error Notifications
Setting Monitoring advanced parameters
Scheduling Resource monitoring
Introducing ServiceKeeper


Create a Monitored Resource object

A Monitored Resource object represents a resource you want to monitor and stores all the monitoring settings for that resource. Monitored Resource objects are stored and organized using custom views found under the Monitored Resources node of the Service+ management console. See About custom views if you are not familiar with custom views.

To create a monitored resource object right-click a monitored resources view node and select New/Monitored resource, or select the Action/New/Monitored resource menu. This will launch the new monitored resource wizard.

There are three ways to create monitored resources:

1. Create a new monitored resource

The wizard follows on and lets you create the first failure detection rule for the monitored resource. Follow the instructions about detecting resource failures and add a failure detection rule. When the new monitored resource object is created you can go back to its properties and add more rules to detect or correct failures as well as send administrative notifications.

2. Import monitored resource from clipboard lets you create a new monitored resource from an XML monitored resource configuration that was previously placed in the clipboard. To export a monitored resource to the clipboard, right click on the monitored resource in Service+ and click the Export monitored resource/to clipboard menu.

3. Import monitored resource from XML configuration file lets you create a new monitored resource from an XML monitored resource configuration file. To export a monitored resource to an XML configuration file, right click on the monitored resource in Service+ and click the Export monitored resource/to an XML configuration file menu.

Related Topics

Detecting Resource Failures
Add a Failure Detection Rule
About Resource Monitoring


ServiceKeeper Statistics

Statistics pages are available in the ServiceKeeper general properties, services properties and monitored resources properties. It offers a summary of your IT system activity allowing you to determine your overall system availability.

Related Topics

Detect Resource Failures
Recover Failed Resources
Set Error Notifications
Schedule Resource Monitoring
Setting Monitoring advanced parameters
Introducing ServiceKeeper


Scheduling resource minitoring

Scheduling resource monitoring

This feature lets you schedule monitoring operations. For instance, you may not want to monitor resources at times when those resources are purposely not available like when processes are stopped during back-ups.

To set the resource monitoring schedule

1. Start Service+, select the monitored resource for which you want to set the monitoring schedule and click the Properties button. This brings up the monitored resource properties.

2. Select the Schedule tab.

3. By default resources are monitored continuously at a preset frequency. You can change this by defining zones when monitoring is in effect and zones when monitoring is disabled. Highlight the zone you want to disable and right-click on painted area to white out the zones defining when you do not want monitoring activities.

Light Green:
The resource is monitored.
White:
Monitoring is disabled.

Related Topics
Introducing ServiceKeeper
About Resource Monitoring


About Detecting Resource Failures

ServiceKeeper provides various methods that can be combined together for the detection of resource failures. A resource may be defined as a set of one or several elements participating to a common service and that can be monitored by ServiceKeeper. You will typically set one or several failure detection rules to monitor the elements of a monitored resource objects representing the monitored resource. A detection rule can be an IP address to ping, a TCP/IP protocol to test, checking the value of a code returned by a program or script, tracking events in event logs or values of performance counters.

A monitored resource object is stored in one or several custom views found under the Monitored Resources node of the Service+ management console.

To edit the failure detection settings for a monitored resource

1. Open the Service+ management console. Select a view under the monitored resources node in the tree view (left pane). See About custom views for more details about custom views.

2. Double-click the monitored resource object you want to edit in the details pane or select it and click the Properties button [image] on the toolbar.

3. You can change the description of the monitored resource if needed.

5. Click on the Monitor tab and the Detect choice to access the list of existing detection rules.

You can add, modify, remove or change the order of failure detection rules from the right pane.

Each detection rule can individually be enabled or disabled using the check box next to it.

The intervals used to detect failures is set in the advanced parameters of the monitoring tab.

Related Topics
Add a Detection Rule
Modify a Detection Rule
Set Detection Rules Order
Remove a Detection Rule
About Resource Monitoring


Add a Failure Detection Rule

To add failure detection settings for a monitored resource

1. Click on the Monitor tab and the Detect choice of the monitored resource object properties to access the list of existing detection rules.

2. Click on the New Failure Detection Wizard button [image] . This launches the wizard.

3. Select the appropriate type of failure detection and click Next.

4. Enter a new description for your detection rule and click Next.

5. Edit the detection rule settings.

Each detection type has its own settings. Please follow the links below to see detailed information regarding the detection type settings.

Detection types

Monitoring a Web Site Monitoring a FTP Site Monitoring a SMTP Server Monitoring a POP3 Server Monitoring a NNTP Server Controlling Network Devices (Firewall, Router, etc.) Monitoring TCP/IP Ports Monitoring Event Logs Monitoring Performance Counters Monitoring Process Memory Usage Monitoring Process CPU Usage Using Script Return Values Using Program Exit Code Monitoring The File System

Related Topics

About Detecting Resource Failures


Modify a Failure Detection Rule

To modify a failure detection rule for a monitored resource

1. Click on the Monitor tab and the Detect choice to access the list of existing detection rules.

2. Select the rule you wish to modify.

3. Click on the Properties icon [image] or double-click the rule. This brings up the detection rule properties.

4. The General tab lets you edit the settings for the particular rule you choose.

  • Operator: The operator choice lets you decide how the detection rule you are editing will be logically combined with the other rules present in the detection rule list.
    OR | When two or more rules are logically linked by the OR operator if either one of them evaluates to a failure then the final evaluation is evaluated as a failure.
    AND | When two or more rules are logically linked by the AND operator all of them needs to evaluate to a failure for the final evaluation to be evaluated as a failure.
    XOR | When two or more rules are logically linked by the XOR operator one and only one of them must evaluate to a failure for the final evaluation to be evaluated as a failure.

The precedence between the operators during the evaluation leads to AND evaluations being performed prior to the OR evaluations that performed prior to the XOR evaluations. In other words, A OR B OR C AND D OR E AND F AND G will be evaluated like A OR B OR (C AND D) OR ((E AND F) AND G).

Each detection type has its own settings. Please follow the links below to see detailed information regarding the detection type settings.

Detection types

Monitoring a Web Site Monitoring a FTP Site Monitoring a SMTP Server Monitoring a POP3 Server Monitoring a NNTP Server Controlling Network Devices (Firewall, Router, etc.) Monitoring TCP/IP Ports Monitoring Event Logs Monitoring Performance Counters Monitoring Process Memory Usage Monitoring Process CPU Usage Using Script Return Values Using Program Exit Code Monitoring The File System

5. Select the Polling frequency tab to set the Detection Polling Frequency.

Related Topics

About Detecting Resource Failures
Detection Polling Frequency


Set Failure Detection Rules Order

Failure detections take place in the order they appear in the Failure Detection list on the Monitor tab of the monitored resource object properties. You can reorder this list to adjust the order in which detections are performed.

1. Click the Monitor tab and the Detect choice to access the list of existing detection rules.

2. Select a rule which position in the list you want to change and click the Up button [image] to move the rule up in the list or click the Down button [image] to move the rule down in the list.

Related Topics

About Detecting Resource Failures


Set the Detection Polling Frequency

Set the Failure Detection Polling Frequency

The failure detection polling frequency tab lets you set how often the specific conditions defined by a detection rule are checked. It also lets you specify whether a failure is reported each time the failure conditions are met or whether the failure conditions need to be detected repeatedly during a given period of time before ServiceKeeper considers a failure.

To edit the Polling Frequency tab settings

1. Click on the Monitor tab and the Detect choice of the monitored resource object to access the list of existing detection rules.

2. Select the rule you wish to modify.

3. Click on the Detection Properties icon [image] or double-click the rule. This brings up the detection rule properties.

4. Click the Polling Frequency tab.

  • Check for failure every ...: You can use this parameter to define how often ServiceKeeper will check the conditions defined in the General tab of the rule.
  • Check failure over the time: Select this option to tell ServiceKeeper to check the failure conditions a given number of times and report an error only if a certain percentage of failure has occurred.
  • Check count: This is the number of times you want ServiceKeeper to check the conditions before a failure is evaluated and can be reported.
  • Report when failure rate equals ... %: This is where you specify the proportion of failure that needs to be reached to trigger a failure report.
Example: In the example above ServiceKeeper checks every 10 seconds whether the CRM Web site is sending back the home page upon an HTTP connection. After three times, ServiceKeeper reports a failure if the page had not been sent back two or three times, as 2/3 is 66% and 3/3 is 100%. On an other hand, if the page has not been sent on time only once ServiceKeeper will not report a failure because 1/3 is only 33%. This would indicate a functioning but busy Web site.

Related Topics

About Detecting Resource Failures
Modify a Failure Detection Rule


Remove a Failure Detection Rule

To remove a failure detection rule

1. Click on the Monitor tab and the Detect choice of the monitored resource object properties.

This gives you access to the list of existing detection rules.

2. Select the detection rule you want to remove and click on the Remove button [image] or press the Delete key of your keyboard.

Related Topics

About Detecting Resource Failures


Monitoring a Web Site

This failure detection method lets you control the availability of a web site by opening an HTTP connection with it. You can select an IIS web site located on a computer of your local area network or directly enter the address of a remote web site.

'Monitor a Web Site' detection rule properties

  • Monitor associated Windows service (Wizard mode): Configure automatically a recovery action that restarts the associated IIS service (w3svc) when the web site is down.
  • Detect protocol specific errors (Properties mode): When this option is checked, ServiceKeeper will detect HTTP protocol errors like 4xx or 5xx.
The Text Search tab lets you control the validity of the returned web page by looking for some text.

Note: ServiceKeeper can open a specific page on your web site. For instance, you can enter the following URL: http://www.activeplus.com/us/products/ServiceKeeper/default.asp

Related Topics

Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Process Memory Usage
Monitoring Process CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Resource Failures


Monitoring a FTP Site

This failure detection method lets you control the availability of an FTP server by opening a connection with it. You can select an IIS FTP server located on a computer of your local area network or directly enter the address of a remote FTP site.

'Monitor a FTP Site' detection rule properties

  • Monitor associated Windows service (Wizard mode): Configure automatically a recovery action that restarts the associated IIS service (MSFTPSVC) when the FTP site is down.
  • Detect protocol specific errors (Properties mode): When this option is checked, ServiceKeeper will analyse the FTP server response and will detect an error when a failure code is returned.

Related Topics

Monitoring a Web Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Process Memory Usage
Monitoring Process CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Resource Failures


Monitoring a SMTP Server

This failure detection method lets you control the availability of an SMTP server by opening a connection with it. You can select an IIS SMTP server located on a computer of your local area network or directly enter the address of a remote SMTP site.

'Monitor a SMTP Server' detection rule properties

  • Monitor associated Windows service (Wizard mode): Configure automatically a recovery action that restarts the associated IIS service (SMTPSVC) when the SMTP site is down.
  • Detect protocol specific errors (Properties mode): When this option is checked, ServiceKeeper will analyse the SMTP server response and will detect an error when a failure code is returned.

Related Topics

Monitoring a Web Site
Monitoring a FTP Site
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Process Memory Usage
Monitoring Process CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Resource Failures


Monitoring a POP3 Server

This failure detection method lets you control the availability of a POP3 server by opening a connection with it. You can select an IIS POP3 server located on a computer of your local area network or directly enter the address of a remote POP3 site.

'Monitor a POP3 Server' detection rule properties

  • Monitor associated Windows service (Wizard mode): Configure automatically a recovery action that restarts the associated IIS service (POP3SVC) when the POP3 site is down.
  • Detect protocol specific errors (Properties mode): When this option is checked, ServiceKeeper will analyse the POP3 server response and will detect an error when a failure code is returned.

Related Topics

Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Process Memory Usage
Monitoring Process CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Resource Failures


Monitoring a NNTP Server

This failure detection method lets you control the availability of an NNTP server by opening a connection with it. You can select an IIS NNTP server located on a computer of your local area network or directly enter the address of a remote NNTP site.

'Monitor a NNTP Server' detection rule properties

  • Monitor associated Windows service (Wizard mode): Configure automatically a recovery action that restarts the associated IIS service (NNTPSVC) when the NNTP site is down.
  • Detect protocol specific errors (Properties mode): When this option is checked, ServiceKeeper will analyse the NNTP server response and will detect an error when a failure code is returned.

Related Topics

Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Process Memory Usage
Monitoring Process CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Resource Failures


Monitoring Network Devices (PING)

This method lets you control the availability of your network devices (like computers, routers, firewalls, etc.) by sending a PING request.
You just have to specify the network device IP address or name and the maximum time the device can take to respond (correspond to the -w option of the PING command). You can also specify the size of the packets sent by the request (correspond to the -l option of the PING command).

Related Topics

Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Process Memory Usage
Monitoring Process CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Resource Failures


Monitoring TCP/IP Ports

The TCP/IP ports failure detection rules lets you check the connections to TCP/IP services via WinSock. ServiceKeeper checks that a TCP session can correctly be opened on the specified port. ServiceKeeper also lets you monitor TCP/IP resources which are not running on a Windows platform.

'TCP/IP Ports' monitoring properties

  • Host(s): Enter the name of the server or the IP address of the computer hosting the TCP service you would like to monitor. You may specify more than one host using semi-columns as a separator.
    Example: www.site1.com;servers.site2.com;123.123.123.123
    Note: you can specify a specific TCP port at the same time you specify the host name or IP address.
    Example: server.site1.com:8080
  • Port: Specifies the socket port to be checked. By default, the TCP port will match the default TCP service port for commonly used TCP services.
  • Timeout: Specifies the maximum time (in milliseconds) that the remote server can take to respond.

Related Topics
Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Process Memory Usage
Monitoring Process CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Resource Failures


Monitoring Event Logs

Use this option to monitor the event logs and filter out specific events that will trigger a recovery attempt. Events are recorded in separate logs such as the Application, Security and System logs to which are added Directory and File Replication service logs if the computer is the domain controller, as well as a DNS server log if the computer also acts as a Domain Name System server. Other event logs may be available on your servers.

Event logs can be viewed through the event viewer. The three main event types recorded in the logs are Error, Warning and Information.

'Event log' failure detection rule properties

  • Event log type: (Application / Security / System) Services, applications, drivers or system kernels report events in either type.
  • Source: Usually the same name as a service name . You can visualize the source name of a service reporting to the various event logs from the Event Viewer (Source field), and match it from the list supplied by ServiceKeeper.
  • Detect failure on any error event: The log will be screened for Error events. Error events are significant problems, such as loss of data or loss of functionality.
  • Detect failure on any warning event: The log will be screened for Warning events. Warning events are not necessarily significant, but may indicate a possible future problem. For example, when disk space is low, a Warning will be logged.
  • Specific Event ID's: You can have the log screened for any event, providing its ID. IDs can be visualized through the Event Viewer (Event field). This is used to detect one or more specific events for a monitored resource.

Related Topics

Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring Performance Counters
Monitoring Process Memory Usage
Monitoring Process CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Resource Failures


Monitoring Performance Counters

Windows provides built-in performance objects with various counters that provide information about specific aspects of a system. Counters can be used to precisely detect all sorts of system component errors or threatening conditions.

Performance objects with their counters can be viewed and analyzed from the Performance administrative tool (Start / Run / Perfmon).

'Performance Counters' failure detection rule properties

In the example above, the Spooler service process will be detected as failing if more than 500 handles are allocated.
  • Select a counter using the browse ... button.
  • Set the failure condition (Equal, Greater, Less, etc.).
You may specify a duration for which the counter will be tested though the polling frequency tab or the next window of the Wizard if you are creating a new rule. This option can be useful to test CPU usage for example. When testing the CPU usage of a specified service process, you could detect a failure if the usage is greater than 90% during 60 seconds. A process may occasionally peak to a high CPU usage, however if it stays high during a long period of time, then it could mean that something is wrong.

Selecting counters

The most widely used counters are listed in the following table. For a full description of the data provided by a particular counter associated with a performance object, click 'Explain' in the 'Add Counters' dialog box below:

  • Select the computer running the resource you want to monitor. This requires the appropriate rights and proper ServiceKeeper license. Set the 'Counter detail' to set the definition of available counters.
  • Select the 'Performance object'. Refer to table below.
  • Select the counter available for the monitored object. Some counters require you to specify 'Instances'. Refer to table below.
Performance Object | Counter | Values
Memory |  |
 | Pages/sec | Pages/sec is the rate at which pages are read from or written to disk to resolve hard page faults. This counter is a primary indicator of the kinds of faults that cause system-wide delays. It is the sum of Memory\\Pages Input/sec and Memory\\Pages Output/sec. It is counted in numbers of pages, so it can be compared to other counts of pages, such as Memory\\Page Faults/sec, without conversion. It includes pages retrieved to satisfy faults in the file system cache (usually requested by applications) non-cached mapped memory files.
 | Pages Input/sec | Pages Input/sec is the rate at which pages are read from disk to resolve hard page faults. Hard page faults occur when a process refers to a page in virtual memory that is not in its working set or elsewhere in physical memory, and must be retrieved from disk. When a page is faulted, the system tries to read multiple contiguous pages into memory to maximize the benefit of the read operation. Compare the value of Memory\\Pages Input/sec to the value of Memory\\Page Reads/sec to determine the average number of pages read into memory during each read operation.
 | Page Faults/sec | Page Faults/sec is the average number of pages faulted per second. It is measured in number of pages faulted per second because only one page is faulted in each fault operation; hence this is also equal to the number of page fault operations. This counter includes both hard faults (those that require disk access) and soft faults (where the faulted page is found elsewhere in physical memory.) Most processors can handle large numbers of soft faults without significant consequence. However, hard faults, which require disk access, can cause significant delays.
Objects |  |
 | Processes | 'Processes' is the number of processes in the computer at the time of data collection. This is an instantaneous count, not an average over the time interval. Each process represents the running of a program.
 | Threads | 'Threads' is the number of threads in the computer at the time of data collection. This is an instantaneous count, not an average over the time interval. A thread is the basic executable entity that can execute instructions in a processor.
PhysicalDisk |  |
 | Disk Reads/sec | Disk Reads/sec is the rate of read operations on the disk.
 | Disk Writes/sec | Disk Writes/sec is the rate of write operations on the disk.
Process |  |
 | % Processor Time | % Processor Time is the percentage of elapsed time that all of process threads used the processor to execution instructions. An instruction is the basic unit of execution in a computer, a thread is the object that executes instructions, and a process is the object created when a program is run. Code executed to handle some hardware interrupts and trap conditions are included in this count.
 | Creating Process ID | The Creating Process ID value is the Process ID of the process that created the process. The creating process may have terminated, so this value may no longer identify a running process.
 | ID Process | The unique identifier of this process. ID Process numbers are reused, so they only identify a process for the lifetime of that process.
 | Page Faults/sec | Page Faults/sec is the rate at which page faults by the threads executing in this process are occurring. A page fault occurs when a thread refers to a virtual memory page that is not in its working set in main memory. This may not cause the page to be fetched from disk if it is on the standby list and hence already in main memory, or if it is in use by another process with whom the page is shared.
 | Working Set | Working Set is the current size, in bytes, of the Working Set of this process. The Working Set is the set of memory pages touched recently by the threads in the process. If free memory in the computer is above a threshold, pages are left in the Working Set of a process even if they are not in use. When free memory falls below a threshold, pages are trimmed from Working Sets. If they are needed they will then be soft-faulted back into the Working Set before leaving main memory.
Processor |  |
 | % Processor Time | % Processor Time is the percentage of elapsed time that the processor spends to execute a non-Idle thread. It is calculated by measuring the duration of the idle thread is active in the sample interval, and subtracting that time from interval duration. (Each processor has an idle thread that consumes cycles when no other threads are ready to run). This counter is the primary indicator of processor activity, and displays the average percentage of busy time observed during the sample interval. It is calculated by monitoring the time that the service is inactive, and subtracting that value from 100%.
 | Interrupts/sec | Interrupts/sec is the average rate, in incidents per second, at which the processor received and serviced hardware interrupts. It does not include deferred procedure calls (DPCs), which are counted separately. This value is an indirect indicator of the activity of devices that generate interrupts, such as the system clock, the mouse, disk drivers, data communication lines, network interface cards, and other peripheral devices. These devices normally interrupt the processor when they have completed a task or require attention. Normal thread execution is suspended. The system clock typically interrupts the processor every 10 milliseconds, creating a background of interrupt activity. This counter displays the difference between the values observed in the last two samples, divided by the duration of the sample interval.
Server |  |
 | Bytes Total/sec | The number of bytes the server has sent to and received from the network. This value provides an overall indication of how busy the server is.
 | Context Blocks Queued/sec | Context Blocks Queued per second is the rate at which work context blocks had to be placed on the server's FSP queue to await server action.
 | Errors Access Permissions | The number of times opens on behalf of clients have failed with STATUS_ACCESS_DENIED. Can indicate whether somebody is randomly attempting to access files in hopes of getting at something that was not properly protected.
 | Files Open | The number of files currently opened in the server. Indicates current server activity.
 | Files Opened Total | The number of successful open attempts performed by the server of behalf of clients. Useful in determining the amount of file I/O, determining overhead for path-based operations, and for determining the effectiveness of open locks.
 | Logon Total | Logon Total includes all interactive logons, network logons, service logons, successful logon, and failed logons since the machine is last rebooted.
 | Logon/sec | Logon/sec is the rate of all server logons.
 | Server Sessions | The number of sessions currently active in the server. Indicates current server activity.
System |  |
 | File Data Operations/ sec | File Data Operations/sec is the combined rate of read and write operations on all logical disks on the computer. This is the inverse of System: File Control Operations/sec. This counter displays the difference between the values observed in the last two samples, divided by the duration of the sample interval.
 | File Read Operations/sec | File Read Operations/sec is the combined rate of file system read requests to all devices on the computer, including requests to read from the file system cache. It is measured in numbers of reads. This counter displays the difference between the values observed in the last two samples, divided by the duration of the sample interval.
 | File Write Operations/sec | File Write Operations/sec is the combined rate of the file system Write Requests to all devices on the computer, including requests to write to data in the file system cache. It is measured in numbers of writes. This counter displays the difference between the values observed in the last two samples, divided by the duration of the sample interval.
 | System Up Time | System Up Time is the elapsed time (in seconds) that the computer has been running since it was last started. This counter displays the difference between the start time and the current time.
Thread |  |
 | % Processor Time | % Processor Time is the percentage of elapsed time that all of process threads used the processor to execution instructions. An instruction is the basic unit of execution in a computer, a thread is the object that executes instructions, and a process is the object created when a program is run. Code executed to handle some hardware interrupts and trap conditions are included in this count.

Related Topics

Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring Event Logs
Monitoring Process Memory Usage
Monitoring Process CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Resource Failures


Monitoring Process Memory Usage

This feature lets you track down processes memory leaks.
  • Select the computer on which you want to monitor a process.
  • Select the process you which to monitor.
  • Select the failing condition (Equal, greater, etc.)
  • Select if ServiceKeeper must totalize the physical memory and the virtual memory.
Note: This feature will only work on computers which are in the ServiceKeeper monitored computers list.

Related Topics

Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Process CPU Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Service Failures


Monitoring Process CPU Usage

Heavy CPU usage for a single process may be sign of a failure and will slow down other system components. This feature will let you control the CPU usage of any running processes.
  • Select the computer on which you want to monitor a process.
  • Select the process you which to monitor.
Note: This feature will only work on computers which are in the ServiceKeeper monitored computers list.

Related Topics

Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Process Memory Usage
Using Script Return Values
Using Program Exit Code
Monitoring The File System
Detecting Service Failures


Using Script Return Values

This option lets you write your own VBScript to detect possible failures. For example, you might write a script that connects to a database using ADO and check if there is more than x records pending. You can also use your script with WMI objects that let you access system values (event logs, registry, components, etc.).

'Script Return Value' failure detection rule properties

The following objects are available through the script:

  • Info.Computer: A string that is the name of computer where the service is running.
  • Info.Name: A string that is the service name (Short Name).
  • Info.DisplayName: A string that is the service display name.
  • Info.FailCount: A Long Integer that indicates how many times the service was detected to be failing.
  • Info.DesiredServiceState: A Long Integer that contains the desired service state. (1 for Stopped, 4 for Running, 7 for Paused)

If the service is considered as failing, False should be returned and Info.Error can be set with a clear text explanation describing the error.

Preprocessor Commands

Special preprocessor commands can be included in the script within comments:
  • '$$typelib:[file_name] gives you access to constants defined in a Type Library.
    Example: ADO constants can be used if the following is inserted at the beginning of the script:
    '$$typelib: c:\program files\common files\system\ado\msado15.dll
    or
    '$$typelib: c:\program files\common files\system\ado\msado25.tlb
  • '$$object: (ProgID|CLSID) : name to add a named object to the script context.
    Example: After the MyRecordset is defined, it can be used as follows:
    '$$object:ADODB.Recordset:MyRecordset
  • '$$include:[file_name] to include external code. The text line is replaced by the content of [file_name]
More about scripting: You can find resources explaining WMI, ADSI, and Windows Scripting from Microsoft's sites for developers: Windows Script Technologies and Active Directory Service Interfaces

Related Topics

Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring Event Logs
Monitoring Performance Counters
Monitoring Process Memory Usage
Monitoring Process CPU Usage
Using Program Exit Code
Monitoring The File System
Detecting Resource Failures


Using Program Exit Code

This feature allows a custom program to be executed, in order to check if the service is functioning properly. The exit code returned by the program will be used by ServiceKeeper to detect failure conditions.

'Program Exit Code' failure detection rule properties

  • Program: Specify the path to your executable that supplies the exit codes.
  • Parameters: Optional startup parameters.
  • Directory: Specify the default folder the program is started in.
  • Detect failure if...: Specify the failure conditions based on the exit code returned.
  • Wait for process termination during xxx seconds: If the process is not terminated when this period elapsed, ServiceKeeper will kill the process and will report a failure.

Related Topics

Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring Event Logs
Monitoring Performance Counters
Monitoring Process Memory Usage
Monitoring Process CPU Usage
Using Script Return Values
Monitoring The File System
Detecting Resource Failures


File System Monitoring

Use this option to monitor files on your system. You can watch how many files are in a folder, the file sizes, the amount of free disk space, the last time a file was accessed or written and more.

Note : You can only set the following properties using the advanced mode. Using the wizard mode you can control hard disk free space.

'File System Monitoring' properties

  • Search for files named: Specifies files that are being searched. You may use wildcards to specify a search patern.
  • Look in: Specifies the root folder in which files are searched for. You may use wildcards to specify more than one folder.
  • Detect failure if: Select the failure condition.
  • Search subfolders: Specify if sub folders of the 'Look in' folder must be searched.
  • At least one file must match the condition above: An error will be detected if at least one file matches the above condition.
  • All files must match the condition above: An error will be detected if all files matches the above condition.

Related Topics

Monitoring a Web Site
Monitoring a FTP Site
Monitoring a SMTP Server
Monitoring a POP3 Server
Monitoring a NNTP Server
Controlling Network Devices (Firewall, Router, etc.)
Monitoring TCP/IP Ports
Monitoring The Event Logs
Monitoring Performance Counters
Monitoring Process Memory Usage
Monitoring Process CPU Usage
Using Script Return Values
Using Program Exit Code
Detecting Resource Failures


About Recovering Failed Resources

ServiceKeeper provides several recovery methods that can be combined together to fix or bypass failed resources. You can set the order in which the methods are applied by deciding which method will be performed for each failure occurrence.

To edit the recovery settings for a monitored resource

1. Open the Service+ management console. Select a view under the monitored resources node in the tree view (left pane). See About custom views if you are not familiar with custom views.

2. Double-click the monitored resource object you want to edit in the details pane or select the monitored resource object and click the Properties button [image] on the toolbar.

3. Click on the Monitor tab and the Recover choice to access the list of existing recovery actions.

You can add, modify, remove or set the order of recovery actions from the right pane.

Each recovery action can individually be enabled or disabled using the check box next to it.

ServiceKeeper will cycle through the enabled recovery actions until the service is fixed or recovery is abandoned.

Related Topics
Add a recovery action
Modify a recovery action
Remove a recovery action
About Resource Monitoring


Add a Recovery Action

To add a recovery action to a monitored resource object

1. Click on the Monitor tab and the Recover choice of the monitored resource object properties to access the list of existing recovery actions.

2. Click on the New recovery action Wizard button [image]. This launches the wizard.

3. Select the recovery action of your choice and click Next.

4. Enter a description for your recovery action. Click Next.

5. Edit the recovery action settings.

Each recovery action type has its own settings. Please follow the links below for more information regarding the action settings.

Action types

No recovery Start a service Launching a program or a batch file Running a script Recovering the file system Restarting a computer Stopping resource monitoring

Related Topics

About Recovering Failed Resources


Modify a Recovery Action

To modify a recovery action of a monitored resource

1. Click on the Monitor tab and the Detect choice to access the list of existing recovery actions.

2. Select the action you wish to modify.

3. Click on the Properties icon [image] or double-click the action. This brings up the recovery action properties.

Each action type has its own settings. Please follow the links below to see detailed information regarding the action settings.

Action types

No recovery Starting a service Launching a program or a batch file Running a script Recovering the file system Restarting a computer Stopping service monitoring

Related Topics

About Recovering Failed Resources


Remove a Recovery Action

To remove a recovery action

1. Click on the Monitor tab and the Recover choice of the monitored resource object properties.

This gives you access to the list of existing actions.

2. Select the action you want to remove and click on the Remove button [image] or press the Delete key of your keyboard.

Related Topics
About Recovering Failed Resources


No Recovery

This action does nothing. Only a notification is issued if configured when the monitored resource is detected as failing.

For example, this action could be used by out-of-office administrators along with notifications posted to an HTML log. Since the resource remains in a failed condition, it will be detected again as so, the recovery action will be applied again. A new entry will be added to the log that can be accessed through a web site.

No recovery action properties

  • Description: You can change the recovery action description if needed.
  • Execute this action when the failure detection counter reaches... until...: The two values you choose in this section determine when this recovery action will take place. Each time the failure conditions defined in the detection rule are met the failure detection counter is incremented and its value is checked against the two values you entered to determine whether this recovery action needs to be performed or not. The failure detection counter is automatically reset to zero after no failure has been detected for a given period of time. This period of time can be set through the advanced parameters.
  • Stop recovery process if this action succeeds: This option tells ServiceKeeper to stop the succession of recovery actions if this one is successful.

Related Topics
Starting a service
Launching a program or a batch file
Running a script
Recovering the file system
Restarting a computer
Stop monitoring
About Recovering Failed resources


Starting a Service

This action starts a specific service on the local machine or on a remote computer.

'Start a service' action properties

  • Description: You can change the recovery action description if needed.
  • Execute this action when the failure detection counter reaches... until...: The two values you choose in this section determine when this recovery action will take place. Each time the failure conditions defined in the detection rule are met the failure detection counter is incremented and its value is checked against the two values you entered to determine whether this recovery action needs to be performed or not. The failure detection counter is automatically reset to zero after no failure has been detected for a given period of time. This period of time can be set through the advanced parameters.
  • Stop recovery process if this action succeeds: This option tells ServiceKeeper to stop the succession of recovery actions if this one is successful.
  • Computer: Select the computer hosting the service to be started.
  • Service: Select the service to be started. The dropdown list shows the name of all the services, listed alphabetically.
  • Parameters: Enter optional service startup parameters.
  • Restart service if the service is already running: The service to be started will be restarted if it is already running.

Related Topics

No recovery
Launching a program or a batch file
Running a script
Recovering the file system
Restarting a computer
Stopping the resource monitoring
About Recovering Failed Resources


Launching a Program or a Batch File

Use this action to start a custom program or a batch file that will produce the necessary recovery

'Launch a program or a batch file' action properties

  • Description: You can change the recovery action description if needed.
  • Execute this action when the failure detection counter reaches... until...: The two values you choose in this section determine when this recovery action will take place. Each time the failure conditions defined in the detection rule are met the failure detection counter is incremented and its value is checked against the two values you entered to determine whether this recovery action needs to be performed or not. The failure detection counter is automatically reset to zero after no failure has been detected for a given period of time. This period of time can be set through the advanced parameters.
  • Stop recovery process if this action succeeds: This option tells ServiceKeeper to stop the succession of recovery actions if this one is successful.
  • Program: Select or specify the full path to the executable. If the executable is on another machine, use a UNC path.
  • Parameters: You may pass on the following parameters to your executable:
    • %FailCount% Resource failure count.
    • %FailReason% Resource failure cause as detected.
      • 2 for process exit code
      • 3 for TCP/IP service
      • 4 for performance counters
      • 5 for event log
      • 6 for script
      • 7 for file system
    • %FailComputer% Computer name running the failed service.
    • %FailService% Failed service name (ShortName).
    • %FailServiceDisplayName% Failed service Display Name.
    These keywords above are also set as process environment variables.
  • Directory: Current directory of the process (the Start In directory).
  • Wait for process termination during xxx seconds: If the process is not terminated when this period elapsed, ServiceKeeper will kill the process. If you do not want to wait for process termination, set this value to 0.

Related Topics

No recovery
Starting a service
Launching a program or a batch file
Running a script
Recovering the file system
Restarting a computer
Stop monitoring
About Recovering Failed Resources


Running a Script

This option let you write a script (VBScript) that will be in charged of recovering a failing resource. For example, you could write a script that will delete a set of files and then attempt to start the service.

'Runn a Script' action properties

  • Description: You can change the recovery action description if needed.
  • Execute this action when the failure detection counter reaches... until...: The two values you choose in this section determine when this recovery action will take place. Each time the failure conditions defined in the detection rule are met the failure detection counter is incremented and its value is checked against the two values you entered to determine whether this recovery action needs to be performed or not. The failure detection counter is automatically reset to zero after no failure has been detected for a given period of time. This period of time can be set through the advanced parameters.
  • Stop recovery process if this action succeeds: This option tells ServiceKeeper to stop the succession of recovery actions if this one is successful.
The script has access to the following objects:
  • Info.Computer: A string that is the name of the computer where the service is running.
  • Info.Name: A string that is the service name.
  • Info.DisplayName: A string that is the service display name.
  • Info.FailCount: A Long Integer that indicates how many time the service was detected to be failing.
  • Info.FailReason: A Long Integer that indicates which error detection method triggered the recovery. It can be any of the following values:
    • 2 for process exit code
    • 3 for TCP/IP failure
    • 4 for performance counters
    • 5 for event log
    • 6 for script
    • 7 for file system
  • Info.DesiredServiceState: A Long Integer that contains the desired state. (1 for Stopped, 4 for Running, 7 for Paused)
If the service recovery fails, False should be returned and Info.Error can be set with a text describing the error.

Preprocessor Commands:

Several preprocessor commands can be used in a comment line:

  • '$$typelib:[file_name] to access constants defined in a Type Library.
    Example: ADO constants can be used if the following is inserted at the beginning of the script:
    '$$typelib: c:\program files\common files\system\ado\msado15.dll
    or
    '$$typelib: c:\program files\common files\system\ado\msado25.tlb
  • '$$object: (ProgID|CLSID) : name to add an named object to the script context.
    Example: After the MyRecordset is defined, it can be used as follows:
    '$$object:ADODB.Recordset:MyRecordset
  • '$$include:[file_name] to include external code. The line is replaced by the content of [file_name]
More about scripting: You can find resources explaining WMI, ADSI, and Windows Scripting from Microsoft's sites for developers: Windows Script Technologies and Active Directory Service Interfaces

Related Topics

No recovery
Starting a service
Launching a program or a batch file
Recovering the file system
Restarting a computer
Stop monitoring
About Recovering Failed Resources


File System Recovery

Using this option, you can perform several actions such as copying a file to a different folder, moving a file, deleting a file and more.

'File System Recovery' properties

  • Description: You can change the recovery action description if needed.
  • Execute this action when the failure detection counter reaches... until...: The two values you choose in this section determine when this recovery action will take place. Each time the failure conditions defined in the detection rule are met the failure detection counter is incremented and its value is checked against the two values you entered to determine whether this recovery action needs to be performed or not.
    The failure detection counter is automatically reset to zero after no failure has been detected for a given period of time. This period of time can be set through the advanced parameters.
  • Stop recovery process if this action succeeds: This option tells ServiceKeeper to stop the succession of recovery actions if this one is successful.
  • File(s): Specify which file(s) you need to copy, move or delete. You may use wildcards to specify a search pattern.
  • From: Specify the source folder from where you will copy, move or delete files(s).
  • To :Specify the target folder in which you will copy or move file(s).
  • Move files to recycle bin: Enable this option so that deleted files will be moved to the Recycled Bin. Note that each users on a system has it's own Recycled Bin, therefore files will be moved to the user account that was specified to install the ServiceKeeper service during setup.
    Warning: This option will only work with local files
  • Search subfolders: Enable this option to include sub folders.
  • Ignore errors: When this option is enabled, ServiceKeeper will ignore errors and continue to process all files. Otherwise, ServiceKeeper will stop immediately if an error is encountered.

Related Topics

No recovery
Starting another service
Starting a service
Launching a program or a batch file
Restarting a computer
Stopping service monitoring
About Recovering Failed Services


Restart the Computer

Restarting the Computer

You typically use this option to recover after all other actions have failed.

'Restart the Computer' action properties

  • Description: You can change the recovery action description if needed.
  • Execute this action when the failure detection counter reaches... until... : The two values you choose in this section determine when this recovery action will take place. Each time the failure conditions defined in the detection rule are met the failure detection counter is incremented and its value is checked against the two values you entered to determine whether this recovery action needs to be performed or not.
    The failure detection counter is automatically reset to zero after no failure has been detected for a given period of time. This period of time can be set through the advanced parameters.
  • Stop recovery process if this action succeeds: This option tells ServiceKeeper to stop the succession of recovery actions if this one is successful.
  • Force application to close down: This will close down applications even if they are prompting users, requesting for example: 'Would you like to save changes?'

Related Topics

No recovery
Starting a service
Launching a program or a batch file
Running a script
Recovering the file system
Stop monitoring
About Recovering Failed Resources


Stop Monitoring

This option tells ServiceKeeper to stop monitoring the resource. The current resource state is ignored until the ServiceKeeper service is restarted or the resource monitoring settings are changed.

'Stop resource monitoring' properties

  • Description
    You can change the recovery action description if needed.
  • Execute this action when the failure detection counter reaches... until...
    The two values you choose in this section determine when this recovery action will take place. Each time the failure conditions defined in the detection rule are met the failure detection counter is incremented and its value is checked against the two values you entered to determine whether this recovery action needs to be performed or not.

    The failure detection counter is automatically reset to zero after no failure has been detected for a given period of time. This period of time can be set through the advanced parameters.

Related Topics

No recovery
Starting a service
Launching a program or a batch file
Running a script
Recovering the file system
Restarting a computer
About Recovering Failed Resources


Set Error Notifications

Configuring notifications

ServiceKeeper lets you choose from various methods of notification that can be combined together to ensure you will receive an update on your server incidents and corrective actions, wherever you are (e.g. Mail, Web, pager, Windows Administrative Alerts, etc.).

To configure notifications

1. Open the Service+ management console. Select a view in the tree view (left pane) and the resource you wish to monitor in the details pane.

2. Right-click the monitored resource object and select properties or double-click on the monitored resource object.

3. Click on the Monitor tab and the Notify choice to access the list of notification means offered by ServiceKeeper.

  • Notify using ServiceKeeper default settings
    This option let's you use the ServiceKeeper default settings instead of having to specify specific notifications for this particular service. You may have a preferred notification method that you want to be used independently of what resource is monitored. In that case you should configure the notification methods via the ServiceKeeper default settings.

4. Select the notification method in the list and click on the Properties button [image] or double-click the selection. Each notification method has its own settings. Please follow the links below for more information regarding the notification settings.

Notification methods

Sending an email (SMTP) Sending a Window administrative alert Launching a program or a batch file Sending an SNMP trap Running a script Log to an HTML log file Log to an RSS feed Voice Notification (Experimental)

Related topics

About Resource Monitoring


Sending an email

Sending an email (SMTP)

An SMTP email will be sent when an error is detected and after the recovery action was initiated. Information is displayed inside the message body as with a log, with errors and actions queued and following the monitored resource name.

To edit the 'Send an email (SMTP)' notification properties

1. From the notification list select the Send an email (SMTP) notification and click on the Properties button [image] or double-click the notification.

  • From: E-Mail address of the mail originator. You can specify any legitimate originator.
  • To: Recipient who will receive the notification. You may specify more than one recipient using a comma as a separator.
  • Subject: The message subject
  • Charset: The MIME encoding charset. If "No encoding" is selected, the message will not be encoded. This option can be useful when sending messages to systems that are not compatible with MIME content (Pager, SMS, etc.).
  • Format: Select the format in which the message will be sent (Note: 'Subject Only' will add the notification message to the subject).
  • SMTP server: Name of the SMTP server for outgoing mails. Alternatively you can enter the IP address of your server.
  • Authentication: Select the authentication method and enter the login information. See your network administrator for details.
  • Message: You can enter a customized message that will be sent when a notification occurs. Some keywords can be inserted in your text. They will be replaced by ServiceKeeper just before it will run the notification. The available keywords are:
    • %ErrorMessage% : The message that ServiceKeeper normally sends
    • %Date% : The notification date
    • %Time% : The notification time
    • %StartMonitoringDate% : The date from which the monitored resource began to be monitored
    • %UpTime% : The period during which the monitored resource has been up
    • %DownTime% : The period during which the monitored resource has been down
    • %Availability% : The monitored resource percentage of availability (100 * UpTime) / (UpTime + DownTime)
    • %LastKnownRunningState% : The date on which the monitored resource was detected up for the last time
    • %LastFailureDate% : The last date on which a failure was detected
    • %FailureCount% : The failure count of the monitored resource
    • %FailureCountSinceRestart% : The failure count of the monitored resource since last ServiceKeeper restart
    • %LastSucceededRecoveryDate% : The date of the last succeeded recovery attempt
    • %LastFailedRecoveryDate% : The date of the last failed recovery attempt
    • %FailedRecoveryCount% : The count of failed recovery
    • %FailedRecoveryCountSinceRestart% : The count of failed recovery since last ServiceKeeper restart
    • %SucceededRecoveryCount% : The count of succeeded recovery
    • %SucceededRecoveryCountSinceRestart% : The count of succeeded recovery since last ServiceKeeper restart
    • %Running% : 1 if the monitored resource is up (0 if it is down)
    • %Failure% : 1 if a failure was detected (0 if no failure was detected)
    • %RecoverySucceeded% : 1 if the recovery attempt succeeded (0 if the recovery attempt failed or if no recovery was tried)
    • %RecoveryFailed% : 1 if the recovery attempt failed (0 if the recovery attempt succeeded or if no recovery was tried)

Related Topics

Sending a Window administrative alert
Launching a program or a batch file
Sending an SNMP trap
Running a script
Log to an HTML log file
Log to an RSS feed
Voice notification (Experimental)
Configuring notifications


Sending an admin alert

Sending a Windows administrative alert

This notification method will display a warning using the Messenger and Alerter services. Both services should be started on the receiving computer if the administrative alerts are sent to another machine.

To edit the 'Send a Windows administrative alert' notification properties

1. From the notification list select the Send a Windows administrative alert notification and click on the Properties button [image] or double-click the notification.

2. Enter the name of the user account or the computer name that should receive the message. You can specify more than one user account or computer using commas as separators (e.g. Admin, Jim, Bob)

3. Message: You can enter a customized message that will be sent when a notification occurs. Some keywords can be inserted in your text. They will be replaced by ServiceKeeper just before it will run the notification. The available keywords are:

  • %ErrorMessage% : The message that ServiceKeeper normally sends
  • %Date% : The notification date
  • %Time% : The notification time
  • %StartMonitoringDate% : The date from which the monitored resource began to be monitored
  • %UpTime% : The period during which the monitored resource has been up
  • %DownTime% : The period during which the monitored resource has been down
  • %Availability% : The monitored resource percentage of availability (100 * UpTime) / (UpTime + DownTime)
  • %LastKnownRunningState% : The date on which the monitored resource was detected up for the last time
  • %LastFailureDate% : The last date on which a failure was detected
  • %FailureCount% : The failure count of the monitored resource
  • %FailureCountSinceRestart% : The failure count of the monitored resource since last ServiceKeeper restart
  • %LastSucceededRecoveryDate% : The date of the last succeeded recovery attempt
  • %LastFailedRecoveryDate% : The date of the last failed recovery attempt
  • %FailedRecoveryCount% : The count of failed recovery
  • %FailedRecoveryCountSinceRestart% : The count of failed recovery since last ServiceKeeper restart
  • %SucceededRecoveryCount% : The count of succeeded recovery
  • %SucceededRecoveryCountSinceRestart% : The count of succeeded recovery since last ServiceKeeper restart
  • %Running% : 1 if the monitored resource is up (0 if it is down)
  • %Failure% : 1 if a failure was detected (0 if no failure was detected)
  • %RecoverySucceeded% : 1 if the recovery attempt succeeded (0 if the recovery attempt failed or if no recovery was tried)
  • %RecoveryFailed% : 1 if the recovery attempt failed (0 if the recovery attempt succeeded or if no recovery was tried)

Related Topics

Sending an email (SMTP)
Launching a program or a batch file
Sending an SNMP trap
Running a script
Log to an HTML log file
Log to an RSS feed
Voice notification (Experimental)
Configuring notifications


Launching an executable

Launch a program or a batch file

This notification can be used to launch a pager program that has a command line interface for instance.

To edit the 'Launch a program or a batch file' notification properties

1. From the notification list select the Launch a program or a batch file notification and click on the Properties button [image] or double-click the notification.

  • Program: Specify the full path to the executable. If the executable is on remote computer use the UNC path.
  • Parameters: You may pass the following parameters to your executable:
    • %MessageFile%: The name of a file that contains the error message.
    • %Message%: The actual error message. Carriage Returns are replaced by spaces.
    • %Date% : The notification date
    • %Time% : The notification time
    • %StartMonitoringDate% : The date from which the monitored resource began to be monitored
    • %UpTime% : The period during which the monitored resource has been up
    • %DownTime% : The period during which the monitored resource has been down
    • %Availability% : The monitored resource percentage of availability (100 * UpTime) / (UpTime + DownTime)
    • %LastKnownRunningState% : The date on which the monitored resource was detected up for the last time
    • %LastFailureDate% : The last date on which a failure was detected
    • %FailureCount% : The failure count of the monitored resource
    • %FailureCountSinceRestart% : The failure count of the monitored resource since last ServiceKeeper restart
    • %LastSucceededRecoveryDate% : The date of the last succeeded recovery attempt
    • %LastFailedRecoveryDate% : The date of the last failed recovery attempt
    • %FailedRecoveryCount% : The count of failed recovery
    • %FailedRecoveryCountSinceRestart% : The count of failed recovery since last ServiceKeeper restart
    • %SucceededRecoveryCount% : The count of succeeded recovery
    • %SucceededRecoveryCountSinceRestart% : The count of succeeded recovery since last ServiceKeeper restart
    • %Running% : 1 if the monitored resource is up (0 if it is down)
    • %Failure% : 1 if a failure was detected (0 if no failure was detected)
    • %RecoverySucceeded% : 1 if the recovery attempt succeeded (0 if the recovery attempt failed or if no recovery was tried)
    • %RecoveryFailed% : 1 if the recovery attempt failed (0 if the recovery attempt succeeded or if no recovery was tried)
  • Directory: Current starting directory of the process (the Start In directory).
  • Wait for process termination during xxx seconds: If the process is not terminated when this period elapsed, ServiceKeeper will kill the process. If you do not want to wait for process termination, set this value to 0.
  • Message: You can enter a customized message that will be sent when a notification occurs. Some keywords can be inserted in your text. They will be replaced by ServiceKeeper just before it will run the notification. The available keywords are:
    • %ErrorMessage% : The message that ServiceKeeper normally sends
    • %Date% : The notification date
    • %Time% : The notification time
    • %StartMonitoringDate% : The date from which the monitored resource began to be monitored
    • %UpTime% : The period during which the monitored resource has been up
    • %DownTime% : The period during which the monitored resource has been down
    • %Availability% : The monitored resource percentage of availability (100 * UpTime) / (UpTime + DownTime)
    • %LastKnownRunningState% : The date on which the monitored resource was detected up for the last time
    • %LastFailureDate% : The last date on which a failure was detected
    • %FailureCount% : The failure count of the monitored resource
    • %FailureCountSinceRestart% : The failure count of the monitored resource since last ServiceKeeper restart
    • %LastSucceededRecoveryDate% : The date of the last succeeded recovery attempt
    • %LastFailedRecoveryDate% : The date of the last failed recovery attempt
    • %FailedRecoveryCount% : The count of failed recovery
    • %FailedRecoveryCountSinceRestart% : The count of failed recovery since last ServiceKeeper restart
    • %SucceededRecoveryCount% : The count of succeeded recovery
    • %SucceededRecoveryCountSinceRestart% : The count of succeeded recovery since last ServiceKeeper restart
    • %Running% : 1 if the monitored resource is up (0 if it is down)
    • %Failure% : 1 if a failure was detected (0 if no failure was detected)
    • %RecoverySucceeded% : 1 if the recovery attempt succeeded (0 if the recovery attempt failed or if no recovery was tried)
    • %RecoveryFailed% : 1 if the recovery attempt failed (0 if the recovery attempt succeeded or if no recovery was tried)

Related Topics

Sending an email (SMTP)
Sending a Window administrative alert
Sending an SNMP trap
Running a script
Log to an HTML log file
Voice notification (Experimental)
Configuring notifications


Sending an SNMP trap

Simple Network Management Protocol (SNMP) is a network protocol used to provide status information about resources on a TCP/IP network. A trap is a message sent to a management system by an agent running on a resource where an event has occurred. ServiceKeeper is an SNMP agent that reports resource failures to your SNMP management system.

ServiceKeeper's traps contain the error message that is reported in the event log. Active+ Software SMI Network Management Private Enterprise Code is 6792. The TRAP has 1 parameter of type OCTETSTRING. The OID for this parameter is: .1.3.6.1.4.1.6792.1.1.0

To activate the 'Send an SNMP trap' notification

1. From the notification list select the Send an SNMP trap notification and check the Enabled option to enable notifications. There are no properties to configure. The SNMP service must be running.

Related Topics

Sending an email (SMTP)
Sending a Window administrative alert
Launching a program or a batch file
Running a script
Log to an HTML log file
Log to an RSS feed
Voice notification (Experimental)
Configuring notifications


Running a script

This feature lets you write a script (VBScript) to send notification messages.

To edit the 'Run a script' notification properties

1. From the notification list select the Run a script notification and click on the Properties button [image] or double-click the notification.

  • Message: You can enter a customized message that will be sent when a notification occurs. Some keywords can be inserted in your text. They will be replaced by ServiceKeeper just before it will run the notification. The available keywords are:
    • %ErrorMessage% : The message that ServiceKeeper normally sends
    • %Date% : The notification date
    • %Time% : The notification time
    • %StartMonitoringDate% : The date from which the monitored resource began to be monitored
    • %UpTime% : The period during which the monitored resource has been up
    • %DownTime% : The period during which the monitored resource has been down
    • %Availability% : The monitored resource percentage of availability (100 * UpTime) / (UpTime + DownTime)
    • %LastKnownRunningState% : The date on which the monitored resource was detected up for the last time
    • %LastFailureDate% : The last date on which a failure was detected
    • %FailureCount% : The failure count of the monitored resource
    • %FailureCountSinceRestart% : The failure count of the monitored resource since last ServiceKeeper restart
    • %LastSucceededRecoveryDate% : The date of the last succeeded recovery attempt
    • %LastFailedRecoveryDate% : The date of the last failed recovery attempt
    • %FailedRecoveryCount% : The count of failed recovery
    • %FailedRecoveryCountSinceRestart% : The count of failed recovery since last ServiceKeeper restart
    • %SucceededRecoveryCount% : The count of succeeded recovery
    • %SucceededRecoveryCountSinceRestart% : The count of succeeded recovery since last ServiceKeeper restart
    • %Running% : 1 if the monitored resource is up (0 if it is down)
    • %Failure% : 1 if a failure was detected (0 if no failure was detected)
    • %RecoverySucceeded% : 1 if the recovery attempt succeeded (0 if the recovery attempt failed or if no recovery was tried)
    • %RecoveryFailed% : 1 if the recovery attempt failed (0 if the recovery attempt succeeded or if no recovery was tried)
  • Info.Message: A string that contains the error message, this string may include CR LF.
    If the notification fails, False should be returned and Info.Error can be set with a text describing the error.

Preprocessor directives:

Special preprocessor directives can be included in comment lines:
  • '$$typelib:[file_name] to access to constants defined in a Type Library.
    Example: ADO constants can be used if the following is inserted at the beginning of the script:
    '$$typelib: c:\program files\common files\system\ado\msado15.dll
    or
    '$$typelib: c:\program files\common files\system\ado\msado25.tlb
  • '$$object: (ProgID|CLSID) : name to add an named object to the script context.
    Example: After the MyRecordset is defined, it can be used as follows:
    '$$object:ADODB.Recordset:MyRecordset
  • '$$include:[file_name] to include external code. The line is replaced by the content of [file_name]
More about scripting: You can find resources explaining WMI, ADSI, and Windows Scripting from Microsoft's sites for developers: Windows Script Technologies and Active Directory Service Interfaces

Related Topics

Sending an email (SMTP)
Sending a Window administrative alert
Launching a program or a batch file
Sending an SNMP trap
Log to an HTML log file
Voice notification (Experimental)
Configuring notifications


Writing to HTML event log

Logging to an HTML log file

This notification method may be used to allow administrators to check the ServiceKeeper event log from anywhere, using a web browser.

To edit the 'Logging to an HTML log file' notification properties

1. From the notification list select the Logging to an HTML log file notification and click on the Properties button [image] or double-click the notification.

  • HTML File: Points to an HTML file that will contain the log. This file should be in a web site directory. A UNC path must be used to store the file on a remote server. If the file does not exist, it will be created, if the file does exist, events are appended to the end of the file.
  • Message: You can enter a customized message that will be sent when a notification occurs. Some keywords can be inserted in your text. They will be replaced by ServiceKeeper just before it will run the notification. The available keywords are:
    • %ErrorMessage% : The message that ServiceKeeper normally sends
    • %Date% : The notification date
    • %Time% : The notification time
    • %StartMonitoringDate% : The date from which the monitored resource began to be monitored
    • %UpTime% : The period during which the monitored resource has been up
    • %DownTime% : The period during which the monitored resource has been down
    • %Availability% : The monitored resource percentage of availability (100 * UpTime) / (UpTime + DownTime)
    • %LastKnownRunningState% : The date on which the monitored resource was detected up for the last time
    • %LastFailureDate% : The last date on which a failure was detected
    • %FailureCount% : The failure count of the monitored resource
    • %FailureCountSinceRestart% : The failure count of the monitored resource since last ServiceKeeper restart
    • %LastSucceededRecoveryDate% : The date of the last succeeded recovery attempt
    • %LastFailedRecoveryDate% : The date of the last failed recovery attempt
    • %FailedRecoveryCount% : The count of failed recovery
    • %FailedRecoveryCountSinceRestart% : The count of failed recovery since last ServiceKeeper restart
    • %SucceededRecoveryCount% : The count of succeeded recovery
    • %SucceededRecoveryCountSinceRestart% : The count of succeeded recovery since last ServiceKeeper restart
    • %Running% : 1 if the monitored resource is up (0 if it is down)
    • %Failure% : 1 if a failure was detected (0 if no failure was detected)
    • %RecoverySucceeded% : 1 if the recovery attempt succeeded (0 if the recovery attempt failed or if no recovery was tried)
    • %RecoveryFailed% : 1 if the recovery attempt failed (0 if the recovery attempt succeeded or if no recovery was tried)

Related Topics

Sending an email (SMTP)
Sending a Window administrative alert
Launching a program or a batch file
Sending an SNMP trap
Running a script
Log to an RSS feed
Voice notification (Experimental)
Configuring notifications


Voice Notification (Experimental)

This notification method may be used by an administrator to be vocally notified using the Microsoft Agent or through a phone call.
This feature requires a modem that supports voice functionalities. Most modems offer voice functionalities but since it is a rarely used feature we have experienced some troubles with some modems and this is why we consider this feature to be experimental.

To edit the 'Voice Notification' notification properties

1. From the notification list select the Voice Notification option and click the Properties [image] button.

  • Use the Microsoft Agent: This option will activate the Microsoft Agent notification. Select the agent voice and click Properties [image] to modify the agent parameters.

    - Agent parameters:

    • Voice: Select the voice you wish to give to the agent. You may visit the Microsoft Agent site to download more voices.
    • Minimum time between two notifications: Enter the time to wait in minutes between two notifications. Notification that occurs during that time will be pilled up and delivered at once.
    • Notification schedule: This option let you specify when notifications should execute. For example you could disallow voice notifications at night and during lunch breaks.
  • Place a phone call: chose this option if you want to receive voice notifications through a phone call. Select the phone call receiver and click the Properties [image] button to modify the receiver parameters. You may add more receivers by pressing the ''Add a receiver...' button.

    - Phone call receiver properties:

    • Name: Receiver name.
    • Description: Receiver description.
    • Voice: Select the voice you wish to use during the phone call. Note that it is not possible to list voices when administrating ServiceKeeper remotely.
    • Modem: Select the modem you wish to use to place the phone call. Modems cannot be listed when administrating ServiceKeeper remotely.
    • Phone number: Receiver phone number.
    • Minimum time between two calls: Enter the time to wait in minutes between two phone calls. Notification that occurs during that time will be pilled up and delivered at once.
    • Call schedule: This option let you specify when notifications should execute. For example you could disallow voice notifications at night and during lunch breaks.

Related topics

Sending an email (SMTP)
Sending a Window administrative alert
Launching a program or a batch file
Sending an SNMP trap
Running a script
Log to an HTML log file
Log to an RSS feed
Configuring notifications

© 1997-2007 Active+ Software . Toutes les marques citées sont la propriété de leurs ayants droit. Envoyez vos remarques.


Advanced parameters

The advanced parameters let you fine tune how the recovery actions are performed.

To modify advanced parameters

1. Open the Service+ management console. Select a view in the tree view (left pane) and the server you wish to monitor in the details pane.

2. Right-click the service to be monitored and select properties or double-click on the service.

3. Click on the Monitor tab and the Advanced choice to access the advanced parameters.

  • Delay between recovery attempts
    ServiceKeeper will wait for the specified number of minutes or seconds before going to the next recovery action.
  • Reset failure detection count after
    After the specified number of minutes or seconds of trouble free execution, the failure detection counter is reset to zero. The failure detection counter is used to determine which recovery action takes place each time a failure is detected. If failure conditions are not corrected the failure is detected again and the failure detection counter is incremented. Thus a different recovery action can be performed.

Related Topics

About monitoring Resources


Understanding Services

Services are a type of application that does not require direct user input when launched or when executing (no user session needed). They miss a user interface and run in the background, usually interacting with other programs or resources from the point the system is booted until it is shut down.

Services are considered system extensions, and called that way with some OS. They were introduced in Windows starting with NT, and since relying on Win32 APIs to interact with the system, they are therefore known as Win32 services for subsequent Windows versions (Win2K and Windows XP).

A typical service you can think of is the Alerter Service, which is an application that notifies selected people or programs of administrative alerts. The Alerter is expected to reliably run for as long as the computer is running, and does not require users or programs to query it in order to deliver alerts.

You can also imagine having a client-server application that you wish to have automatically started when the system starts, that wouldn't depend on users logging on it for its core to run, but that would still be processing a number of requests from these users through an interface program. Such requirements would have you run that application in the background as a service rather than in the foreground as most applications.

Services log onto the system in a similar fashion to users: when the service process is started, it is authenticated as user or as system account. The system account (LocalSystem) has local administrative rights on the machine. If you want the service to access network resources that require NT authentication, then you need to set the service startup account to a user account that has proper rights on the network.

Some services depend on other services to run. A particular service parameter called the Service Dependencies (DependOnService) lists all dependent services that need be started in order for the service to run. A service can also run in a service-dependent application process as a host (own process type). It is a shared process type service if it is hosted together with other services by the service-dependent application.

Service context:

Service applications require a service control program (SCP) and a Service Control Manager (SCM) to execute. The service application also needs to be designed or adapted so as to interact in a service context rather than interacting with users through a graphical user interface. Refer to the ServiceMill material to see how applications are turned into service applications.
The SCP lets users control and configure the service applications. Windows supplies one SCP for all standard OS services: the Services Control Panel Applet, also available from the Microsoft Management Console (MMC) snap-in. Service+ is an improved SCP that replaces the standard one supplied with your OS. SCPs should be understood as the graphical interface presented to users that let them issue commands (start, stop, pause, continue, kill, set service dependencies, etc.).

Service+ CL is a console-based SCP that allows advanced control of services across a domain using command lines (CL) from the prompt box, bypassing the graphical-based SCP (control panel applet or MMC snap-in). The SCM is supplied by Windows as the services.exe and serves as the communication interface between the SCP and the service application. The service thus interacts with the SCM, receiving commands and settings initiated from the SCP; and reporting its status to the SCM, which presents it back to the SCP. The SCM has several other functions including locking/unlocking the services database.

Note that some applications running as service or relying on services can also include their own SCP if particular service settings are required. ServiceKeeper is a good example of a service application that monitors, schedules and recovers other services, and that provides a built-in SCP to partially achieve that.

Interacting with users:

We've seen that the service application is controlled through the SCP and the SCM. While most services never interact with user input, some applications running as services still require an interaction at some point of their execution, usually with the administrator. Services needing to interact with the desktop carry flags in their Portable Executable format file header (PE) indicating whether the application is graphical or console-based. Most services carry the console type flag, even when they do not interact at all with the desktop.

There are restrictions with Windows as per how services can interact with users, and according to the account services use to log on. Refer to the ServiceMill topics to see how you can run any application as a service while retaining user interaction.

Related Topics

Understanding Services
Understanding Service Parameters
Understanding Service Processes
Understanding Service Accounts
Understanding the SCM
Understanding the SCP
Understanding the Execution Cycle


Understanding Service Parameters

Service parameters describe such characteristics as the type, the image file location, the description, the startup mode (manual or automatic), the system behavior upon startup error and the membership to groups (how the service starts relatively to other services). The following table is reproduced from literature published by NT guru Mark Russinovich from Sysinternals. We can't recommend enough their very comprehensive publications covering all aspects of the various Windows operating systems.

Value Name | Value Setting | Value Setting Description
DependOnGroup | Group Name | Drivers or services won't load unless a driver or service from the specified group loads.
DependOnService | Service Name | Services won't load until after the specified service loads. This parameter doesn't apply to device drivers.
Description | Description of service | Up to 1024-byte description of the service. New to Win2K.
DisplayName | Name of service | The Services application shows services by this name. If no name is specified, then the name of the service's Registry key serves as the service's name.
ErrorControl | IGNORE (0) | The I/O Manager ignores errors the driver returns. No warning logs or displays.
 | NORMAL (1) | If the driver reports an error, a warning displays.
 | SEVERE (2) | If the driver returns an error and the user doesn't use LastKnownGood, reboot into LastKnownGood. Otherwise, continue the boot.
 | CRITICAL (3) | If the driver returns an error and the user doesn't use LastKnownGood, reboot into LastKnownGood. Otherwise, stop the boot with a blue screen crash.
FailureActions | Description of actions the SCM should take when the service process exits unexpectedly | Failure actions include restarting the service process, rebooting the system, and running a specified program. This value doesn't apply to drivers. New to Win2K.
FailureCommand | Program command line | The SCM reads this value only if FailureActions specifies that a program should execute upon service failure. This value doesn't apply to drivers. New to Win2K.
Group | Group Name | A driver or service that initializes when its group initializes.
ImagePath | Path to service or driver executable file | If ImagePath isn't specified, the I/O Manager looks for drivers in \winnt\system32\drivers, and the SCM looks for services in \winnt\system32.
ObjectName | Usually LocalSystem, but can be account name such as Administrator | Specifies the account in which the service will run. If Object-Name isn't specified, LocalSystem is used. This parameter doesn't apply to device drivers.
Start | SERVICE_BOOT_START (0) | NT Loader (NTLDR) or OSLOADER preloads the driver so that the driver is in memory during the boot. SERVICE_BOOT_START drivers initialize just before SERVICE_SYSTEM_START drivers.
 | SERVICE_SYSTEM_START (1) | The driver loads and initializes after SERVICE_BOOT_START drivers have initialized.
 | SERVICE_AUTO_START (2) | The SCM starts the driver or service.
 | SERVICE_DEMAND_START (3) | The SCM must start the driver or service on demand.
 | SERVICE_DISABLED (4) | The driver or service doesn't load or initialize.
Tag | Tag Number | A specified location in a group initialization order. This parameter doesn't apply to services.
Type | SERVICE_KERNEL_DRIVER (1) | Device driver.
 | SERVICE_FILE_SYSTEM_DRIVER (2) | Kernel-mode file-system driver.
 | SERVICE_RECOGNIZER_DRIVER (8) | File-system recognizer driver.
 | SERVICE_WIN32_OWN_PROCESS (16) | A service that runs in a process that hosts only one service.
 | SERVICE_WIN32_SHARE_PROCESS (32) | A service that runs in a process that hosts multiple services.
 | SERVICE_INTERACTIVE_PROCESS (256) | A service that can display windows on the console and receive user input.
Several parameters above can be set from the SCP (service control panel applet). Check out the Setting general properties topic of Service+ to see which parameters are affected by settings.

Service Registry Key:

Service parameters are stored in the service registry key, which is a non-volatile representation of the SCM service database (ServiceActive database). You can view service parameters above using the Registry Editor (select Start, Run, and type regedit). You will find the services parameters of your computer in the services registry branch: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services folder. The following shows the service parameters of ServiceKeeper:

Entries inside the Service Registry Key are usually performed during installation of applications that include services. The application setup program calls the CreateService API from the Advanced API DLL (winnt\system32\advapi32.dll) to register the service with system, and specifies the service parameters required for the service-dependent application to run.

Related Topics

Understanding Services
Understanding Service Processes
Understanding Service Accounts
Understanding the SCM
Understanding the SCP
Understanding the Execution Cycle


Understanding Service Processes

Launching the Service Process:

A starting service process invokes StartServiceCtrlDispatcher API, which makes a list of all services names (entry points) called in a shared process. The SCM sends the Start command to each service owned by the process. After receiving each command, StartServiceCtrlDispatcher creates a thread to implement the service command loop, and returns control to the process when all threads have terminated. StartServiceCtrlDispatcher only takes the ServiceMain if the service runs in its own process.

In order to receive Stop, Pause, Resume, Interrogate, and Close commands from the SCM, the RegisterServiceCtrlHandler API is called early in the process startup to store the table of functions that handles them. The service process's main thread receives the commands directed at services running in the shared process, and uses the table to locate and invoke the function corresponding to the command.

Througout startup, the process status is periodically reported to the SCM.

Own Process / Shared Process:

Services sometimes share the same process in order to save on system resources. The SCM process for instance is shared with several other services (EventLog, LanmanServer, Alerter, DHCP, etc. under Windows 2000). Service+ lists in its service properties window all services that run in shared processes.

Windows 2000 provides the Service Host (svchost.exe) application to effectively organize shared services processes. Services that run in a Service Host process are implemented as DLLs with an ImagePath to svchost.exe and a parameter subkey pointing to the DLL file, that the SvcHost process reads to load the DLL.

Multiple instances of Service Host can be started, but all services running within the same Service Host process must share the same ImagePath parameter so that they are registered with identical entries in the SCM database, and presented to the SCM as services hosted in a same SvcHost process. The services' ImagePath parameters are stored inside the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost registry key.
For more about this topic, check out the Inside Win32 Services article from Marc Russinovich.

Related Topics

Understanding Services
Understanding Service Parameters
Understanding Service Accounts
Understanding the SCM
Understanding the SCP
Understanding the Execution Cycle


Understanding Service Accounts

System Account:

Services usually run in Local System, the security context of the system account, which offers the highest level of privileges, but comes with several security-related restrictions. Services running in the system account cannot access profile information of other accounts, and only have limited access to network resources unless the computer hosting the services is granted specific rights for its machine account (Windows 2000, XP).

The most notable restriction is with user interaction. All Win32 processes, such as service processes, are associated to a window station that contains the desktop interface and only one window station can receive user input (WinSta0). The general rule is that the SCM associates services with a non-visible window station, preventing interaction.

In order to still allow some services to interact, provision is made for adding the SERVICE_INTERACTIVE_PROCESS Type parameter to a service. The SCP lets you do that with the Interact with Desktop option from the Service Properties settings. In that case, the SCM connects the service with the WinSta0 window station. However, this option is available only for services running in the system's account security context (Local System) and such interactive services will not access networked resources.

User Account:

Services running in a user account gain access to all network resources that the user can access. The SCM starts the service process logging the service onto the system, using the user account and password supplied through the SCP or by the installation program. The service process is associated to a window station that is non visible, preventing all interaction with users.

This major restriction can be lifted using ServiceMill, which allows services logged in with a user account to still interact with the desktop. You can in fact run any graphical or console-based application as a service with ServiceMill, retaining all the user interaction functionalities of a foreground program, while allowing that service application to access other computer resources accordingly user account rights.

There are numerous benefits running an application as a service application while retaining desktop interaction. Some applications depend on a continuous flow of information and you may want the application to process that outside information in the background as it is being received, even when you are not at your desk. While that application is running, you may want to hide it for security reasons by logging off your desktop. Also, if that application is mission critical, you may want to monitor, recover and remotely control it using service monitoring utilities such as ServiceKeeper and Service+ that are very effective at doing that.

Related Topics

Understanding Services
Understanding Service Parameters
Understanding Service Processes
Understanding the SCM
Understanding the SCP
Understanding the Execution Cycle


Understanding the SCM

For all Windows NT systems, the SCM executable is the services.exe file located in the system32 folder and runs as a Win32 console program. Winlogon starts the SCM process early during boot. Services configured for automatic startup are launched by the SCM SvcCtrlMain function before the logon dialog box is diplayed. Before the SCP and the SCM are allowed to communicate through OpenSCManager API, a synchronization event was created by SvcCtrlMain and is signaled after the SCM initialization completes.

The SCM relies on a service database that specifies, among other entries, service dependencies and groups. SvcCtrlMain uses the ScCreateServiceDB function to generate database entries from information inside the registry keys. After the SCM created the group list, ScCreateServiceDB assigns group entries to services according to their DependOnGroup and DependOnService parameters.

The SCM also presents graphical based applications with information about active networked drives connections. When an application assigns or deletes a drive letter to a network share, the Workstation service signals ScNetDrvMsg event so that the SCM can use the GetDriveType API to query the list of connected drives.
For more about this topic, check out the Inside Win32 Services article from Marc Russinovich.

Related Topics

Understanding Services
Understanding Service Parameters
Understanding Service Processes
Understanding the SCP
Understanding the Execution Cycle


Understanding the SCP

Service Control Programs (SCP) communicate with the Service Control Manager (SCM) using a set of APIs: CreateService, OpenService, StartService, ControlService, QueryServiceStatus and DeleteService. The SCP uses the OpenSCManager API to open a communication channel to the SCM and access the APIs.

The SCM creates an object representing the database of services, and presents it to the SCP when requested through the OpenSCManager call. This object is protected by a security descriptor that determines what access rights are granted according to which account: all accounts have enumerate-service access rights to display services, only administrator accounts have permission to create or delete SCM database entries.

Another service security descriptor is specified by the SCP when calling the CreateService API, and is associated with the service entries in the SCM database. This security descriptor is also stored by the SCM inside the Service Registry Key so that the settings survive a reboot. It determines what commands the SCP can issue to a given service (Start, Stop, Pause, etc.).

Applications providing a built-in SCP can dictate the service policy to the SCM. For instance, ServiceKeeper includes a Pending State timeout in its service monitoring features that declares a service failed when exceeding the timeout, and orders the SCM to terminate the process. The SCM does not impose a time limit for a service to close, start or pause. The timeout is determined by the monitoring application.
For more about this topic, check out the Inside Win32 Services article from Marc Russinovich.

Related Topics

Understanding Services
Understanding Service Parameters
Understanding Service Processes
Understanding the SCM
Understanding the Execution Cycle


Understanding the Execution Cycle

Defining the Startup Order:

The SCM uses the ScAutoStartServices function to start in groups and in the good order all services set with automatic startup. The order is defined by the ServiceGroupOrder value stored inside HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder, and using the service's DependOnGroup parameter. ScAutoStartServices checks DependOnGroup for services dependent on other service groups, requiring any dependent group to have initialized, and at least one service from that group to have successfully started prior to starting a service.

ScAutoStartServices also performs a dependencies check using the services' DependOnService registry value; determining whether a service depends on other services from the same group, and whether those services have already started. If not, the service is skipped.

ScAutoStartServices loops through each group until all the group's services have started or generated dependency errors. This looping process is how the SCM sets the services startup order within a group, according to their DependOnService dependencies. The SCM starts services that other services depend on, leaving the dependent services for subsequent loops.

After completing startup for all the groups that ServiceGroupOrder lists, the SCM initiates the startup for services that belong to groups that ServiceGroupOrder doesn't list, and finally, performs a startup of services that do not belong to any group.

Starting a Service Process:

When starting a service, the SCM calls the ScStartService function, which reads the ImagePath value from the service's Registry key to retrieve the file that runs the service's process. Next, ScStartService reads the registry's Type value to determine if the service runs in its own or in a shared process, then, the registry's ObjectName to determine the account (LocalSystem or user account). Throughout the process, the SCM creates in the SCM database the ImagePath and the logon account name of started services.

The SCM starts the process in a suspended state through the ScLogonAndStartImage function. It creates a named pipe to communicate with the process, assigning the pipe name \Pipe\Net\NetControlPipe(x), where (x) is incremented each time the SCM creates a new pipe. The SCM then waits for the service to call StartServiceCtrlDispatcher and to connect to its pipe. If a ServicesPipe Timeout or the default 30 seconds timeout is exceeded without any connection established, the SCM terminates the process. When a service connects to the SCM through the pipe, the SCM sends the service a Start command. If the service fails to start, the SCM logs an error in the System event log, stating the service failed to start in a timely manner.

Startup Errors:

The ErrorControl parameter determines how the SCM must react to a service returning an error to a startup command. If the value is SERVICE_ERROR_IGNORE or unspecified, the error is ignored. If the value is SERVICE_ERROR_NORMAL, the SCM writes a message to the event log that includes the textual representation of the Win32 error code returned. The Service+ administration utility lets you assign either value to the ErrorControl when creating a new service.

Services with a SERVICE_ERROR_SEVERE or a SERVICE_ERROR_CRITICAL ErrorControl value that fail to start will lead the SCM to perform a system reboot. The SCM first writes the error to the event log, then calls the ScRevertToLastKnownGood function that switches the registry configuration to the Last Known Good. Finally, the system is restarted with the NtShutdownSystem system service. The SCM is responsible for saving the Last Known Good control set, which consists of the last system configuration used to successfully start all services set with automatic startup and supporting a user logon.

Service Failures:

Windows NT 4.0 has no ways of warning users a service process has failed, and administrators have to rely exclusively on third party utilities such as ServiceKeeper. Win2K does include limited service failure detection and recovery methods that are implemented by the SCM: Services optionally include the FailureAction and FailureCommand parameters inside the registry that are used by the SCM to initiate recovery actions (Restart, Reboot, Launch Program).

Additional service failure detection, notification and recovery methods implemented by ServiceKeeper are stored per each service as parameters inside the HKEY_LOCAL_MACHINE\SOFTWARE\Active+\ServiceKeeper\Services registry key. Values are generated by the monitoring application's built-in SCP that integrates with MMC or with the Service+ enhanced Services Control Panel applet.

System Shutdown:

The system uses the CSRSS routine to notify all running processes the system is shutting down. CSRSS waits at most for the duration of the WaitToKill timeout of each process to exit before moving to the next one. When the SCM process is notified of a system shutdown, it communicates with services that require a shutdown notification to clean up, and uses a specific timeout to allow for those service processes to exit. The SCM records each service's Wait Hint, the value the SCM uses to determine a service is un-responding, and waits at most for the largest to Wait Hint to time out.

If the Wait Hint times out without a process having exited, the SCM checks if any other service has reported progress towards shutting down. If so, the SCM waits again for the duration of the largest Wait Hint, and repeats this pattern until all service processes have exited, or until the CSRSS reaches the WaitToKill timeout. In that case, the shutdown proceeds without the SCM and remaining service processes having exited. Administrators can raise the WaitToKillServicesTimeout value in HKEY_USERS\.DEFAULT\Control Panel\Desktop\WaitToKillApp to make sure all service processes cleanly exit.
For more about this topic, check out the Inside Win32 Services article from Marc Russinovich.

Related Topics

Understanding Services
Understanding Service Parameters
Understanding Service Processes
Understanding the SCM
Understanding the Execution Cycle

© 1997-2007 Active+ Software . All trademarks property of their owners. Send us feedback.


Enregistrer une nouvelle clef d'utilisation

Registering a license key

When you download and install Service+ or any Active+ software you are provided with a temporary license key. This key gives you a 30 day period for evaluating the software. As soon as you proceed and purchase you are provided with a new customer ID and license key. You need to register this new key.

To register the key

  • To register the key, open the Service+ management console from the Administrative Tools menu or the Shortcut on the desktop.
  • Select the Service+ node on the tree view (left pane).
  • Right-click and choose All tasks/Register a new key.


Software updates

Connecting to Active+ Software's website for list of latest versions...


Log to an RSS feed

Logging to an RSS feed

This notification method may be used to allow administrators to check the ServiceKeeper event log from anywhere, using an RSS reader.

To edit the 'Log to an RSS feed' notification properties

1. From the notification list select the Logging to an RSS feed notification and click on the Properties button [image] or double-click the notification.

  • RSS Feed File: Points to an RSS file (XML) that will contain the log. This file should be in a web site directory. A UNC path must be used to store the file on a remote server. If the file does not exist, it will be created, if the file does exist, events are appended to the end of the file
  • Message: You can enter a customized message that will be sent when a notification occurs. Some keywords can be inserted in your text. They will be replaced by ServiceKeeper just before it will run the notification. The available keywords are:
    • %ErrorMessage% : The message that ServiceKeeper normally sends
    • %Date% : The notification date
    • %Time% : The notification time
    • %StartMonitoringDate% : The date from which the monitored resource began to be monitored
    • %UpTime% : The period during which the monitored resource has been up
    • %DownTime% : The period during which the monitored resource has been down
    • %Availability% : The monitored resource percentage of availability (100 * UpTime) / (UpTime + DownTime)
    • %LastKnownRunningState% : The date on which the monitored resource was detected up for the last time
    • %LastFailureDate% : The last date on which a failure was detected
    • %FailureCount% : The failure count of the monitored resource
    • %FailureCountSinceRestart% : The failure count of the monitored resource since last ServiceKeeper restart
    • %LastSucceededRecoveryDate% : The date of the last succeeded recovery attempt
    • %LastFailedRecoveryDate% : The date of the last failed recovery attempt
    • %FailedRecoveryCount% : The count of failed recovery
    • %FailedRecoveryCountSinceRestart% : The count of failed recovery since last ServiceKeeper restart
    • %SucceededRecoveryCount% : The count of succeeded recovery
    • %SucceededRecoveryCountSinceRestart% : The count of succeeded recovery since last ServiceKeeper restart
    • %Running% : 1 if the monitored resource is up (0 if it is down)
    • %Failure% : 1 if a failure was detected (0 if no failure was detected)
    • %RecoverySucceeded% : 1 if the recovery attempt succeeded (0 if the recovery attempt failed or if no recovery was tried)
    • %RecoveryFailed% : 1 if the recovery attempt failed (0 if the recovery attempt succeeded or if no recovery was tried)

Related Topics

Sending an email (SMTP)
Sending a Window administrative alert
Launching a program or a batch file
Sending an SNMP trap
Running a script
Log to an HTML log file
Voice notification (Experimental)
Configuring notifications