- 21 Jan 2023
- 3 Minutes to read
- Updated on 21 Jan 2023
- 3 Minutes to read
The BuildMaster Service is a key component of BuildMaster's high-availability architecture, and is responsible for executing scripts, communicating with agents/servers, and performing other background tasks.
It's a standard Windows Service Application, and can be managed and configured using the Windows Service Manager or sc.exe as you see fit.
By default, the BuildMaster Service is named
INEDOBMSVC, runs under the
NetworkService account, and is granted Read, Write, and ListDirectory privileges to the following paths, as defined in Advanced Settings:
If you choose to configure this as a custom domain account, it will be important to grant these same privileges.
Managing the Service from the Web Application
In addition to stopping, starting, and restarting (on Windows only) the BuildMaster Service, you can view live logs from the service; this can be helpful in diagnosing problems or working with Inedo's support team to track down unexpected behavior or bugs.
For distributed installations (load balanced / high availability), you'll need to configure the service messenger to work over a network connection instead of a local pipe.
If you're seeing "The BuildMaster web application does not have sufficient privileges to query the service status", see KB#1090: Granting Service Control Privileges for Inedo Product’s Web Applications for instructions on how to resolve the message.
Task runners perform well-defined background tasks, either on a periodic and/or manual basis. Many create subtasks that allow you to better see what the service is doing. Some task runners can be triggered manually. This should only be necessary for debugging purposes, as the Web Application will trigger them in response to certain actions (e.g. adding a connector) and they are always executed when the service is started.
|Event Listener Dispatcher
|monitors BuildMaster events and notifies all configured event listeners when they have occurred
|periodically checks the status of connected servers, updates process hosts as needed, and marks outdated Inedo agents
|monitors the database for executions that are ready to run and creates a subtask to run them; this happens at regular intervals as specified in the ExecutionDispatcher.Frequency configuration setting (5 seconds by default)
|checks the System.IntegrationUrl (defaults to https://inedo.com/bm) for software and extension updates every 12 hours; this may be disabled by setting the Extensions.NextCheck value to empty
|if enabled, queries the configured source for the infrastructure configuration and dispatches an execution when there are changes; this runs periodically as specified by the Infrastructuresync.Frequency configuration setting (60 seconds by default)
|Pipeline Stage Validator
|evaluates the automated gates of a given deployment set and marks the time and status of the check; this is triggered via the web
|syncs Git, CI servers, and runs actions when changes are detected
|Scheduled Promotion Dispatcher
|promotes builds that are “scheduled as soon as requirements are met”
|System Execution Cleanup
|purges old system executions (retention policy, build trigger, and general/manual) based on configured settings
|Retention Policy Dispatcher
|evaluates retention policies every 10 minutes
|performs routine maintenance on rafts and updates cached metadata about raft items
BuildMaster.Service.exe also contains a command line interface (CLI) to reset the admin account, manage the integrated web server, manually install the service, and can be run interactively for debugging purposes.
The CLI commands are:
|Runs the BuildMaster service and/or the BuildMaster web server interactively.
|Installs the BuildMaster service as a Windows service.
|Installs the BuildMaster integrated web server as a Windows service.
|Uninstalls the BuildMaster Windows service.
|Uninstalls the BuildMaster integrated web server Windows service.
|Displays the URL reservations in the system.
|Reserves one or more URLs with HTTP.SYS.
|Deletes one or more URL reservations.
|Switches to the built-in user directory and changes the Admin account password to "Admin".