Automatic service start up and service dependency
When CatTools is installed on a server as a service, the program is set to start automatically when your system is restarted or booted. This occurs even if a user is not logged in to the console.
Service dependencies
Under the majority of operating systems, the CatTools Service starts without issue. On some servers, the CatTools Service must wait for another system service to load before CatTools can start. In this case, the CatTools service fails to load if it is dependent on another service starting first.
If CatTools is not loading, a service dependency may be the issue. One of the following events may occur after rebooting:
- An error message is displayed:
One or more system services failed to start
. - The CatTools Service fails to start even though the startup type for the service is set to
Automatic
.
To test your system for service dependency issues, check the status of the CatTools Service using the services manager:
- Go to Start > Run.
- In the dialog box, type
services.msc
. - Click OK.
- Locate the CatTools service and verify the status is set to
Running
.
If your service status has not started, then your issue is potentially caused by a service dependency. For more information on service dependencies, see Adding Service Dependencies.
Adding service dependencies
You can add a service dependency by two methods:
- Recommended: Modify the Windows registry to create a new value, listing the dependencies. This value can then be applied every time the CatTools Service is created on the system, such as if you upgrade or reinstall CatTools to your system. This is a "permanent" fix.
- Use
sc.exe
to create a dependency specifically for an existing service. If the service is deleted, for example if CatTools is uninstalled, then the dependency is also lost.
Add a dependency using RegEdit
This method is the preferred solution as it ensures the CatTools service dependencies are applied every time the service is created. Therefore, you do not need to run through the sc.exe
method if you need to reinstall or upgrade CatTools.
To ensure the required services have started before CatTools, modify the registry settings.
- Section:
HKEY_LOCAL_MACHINE\SOFTWARE\Kiwi Enterprises\CatTools3
- Value (STRING):
NTServiceDependencies
- Default value: Blank
- Type: Text string of service names, delimited by semi-colons.
For example:ServiceName1;ServiceName2;ServiceName3
For example, to modify the registry to establish that the LanmanWorkstation, TCP/IP, and WMI stack services are running before the CatTools service starts:
- Uninstall CatTools.
- Run RegEdit.
- Locate the section key
HKEY_LOCAL_MACHINE\SOFTWARE\Kiwi Enterprises\CatTools3
. - Create a new string value of
NTServiceDependencies
. - Modify the value data to include the list of services that need to start first, for example:
LanmanWorkstation;TCPIP;WMI
- Reinstall CatTools.
Add a dependency using sc.exe
This is the easiest method to add service dependencies to the existing CatTools service. If the CatTools service is uninstalled, then the dependencies are also lost. To add the dependency, you can run a command from Start > Run dialog and enter the command. You can also run a command from the cmd.exe
window.
For example, to add dependencies to the CatTools service for the LanmanWorkstation, TCP/IP, and Windows Management Interface (WMI) services, execute the command sc config "CatTools" depend= LanmanWorkstation/TCPIP/WMI
using the Run dialog.
The full command is not visible in the open text box. You can view the full command by scrolling to the right.
You can also execute the command using cmd.exe
:
This example ensures that the LanmanWorkstation, WMI, and TCP/IP stack services are running before the CatTools service starts. The service dependencies that need to be added for your system depend on your specific machine and what services are set to run on startup.
- The CatTools service must be stopped before configuring dependencies.
- The CatTools service must be contained within double quotes " ". The service name has a space within it that may cause errors if not contained in double quotes.
- When adding multiple dependencies, separate each individual dependency using a forward slash (
/
). - You must include the space ' ' between depend= and the first dependency service name. If you do not include this space, the dependency is not applied, although it appears to work.
Remove a dependency
To remove a dependency, uninstall CatTools, reboot your system, and reinstall CatTools. The modified CatTools service dependency is removed and replaced with the default from the CatTools installer.
You can also use the command: sc config "CatTools" depend= none
. However, this can leave the CatTools service in an unusable state, as the dependencies are not properly deleted. If this occurs, the only solution is to uninstall CatTools, reboot the system, and reinstall CatTools again.