Service Administration
  • 21 Jan 2023
  • 3 Minutes to read
  • Dark
  • PDF

Service Administration

  • Dark
  • PDF

Article Summary

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.

Service Configuration

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:

  • Extensions.CommonCachePath
  • Extensions.ExtensionsPath
  • Extensions.BuiltInExtensionsPath
  • System.ServiceTempPath
  • System.WebTempPath

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.

Task Runners

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 Dispatchermonitors BuildMaster events and notifies all configured event listeners when they have occurred
Server Checkerperiodically checks the status of connected servers, updates process hosts as needed, and marks outdated Inedo agents
Execution Dispatchermonitors 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)
Update Checkerchecks the System.IntegrationUrl (defaults to for software and extension updates every 12 hours; this may be disabled by setting the Extensions.NextCheck value to empty
Infrastructure Syncif 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 Validatorevaluates the automated gates of a given deployment set and marks the time and status of the check; this is triggered via the web
Resource Monitorsyncs Git, CI servers, and runs actions when changes are detected
Scheduled Promotion Dispatcherpromotes builds that are “scheduled as soon as requirements are met”
System Execution Cleanuppurges old system executions (retention policy, build trigger, and general/manual) based on configured settings
Retention Policy Dispatcherevaluates retention policies every 10 minutes
Raft Analyzerperforms routine maintenance on rafts and updates cached metadata about raft items

BuildMaster.Service.exe CLI

The 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:

runRuns the BuildMaster service and/or the BuildMaster web server interactively.
installInstalls the BuildMaster service as a Windows service.
installwebInstalls the BuildMaster integrated web server as a Windows service.
uninstallUninstalls the BuildMaster Windows service.
uninstallwebUninstalls the BuildMaster integrated web server Windows service.
listreservationsDisplays the URL reservations in the system.
reserveurlsReserves one or more URLs with HTTP.SYS.
deletereservationsDeletes one or more URL reservations.
resetadminpasswordSwitches to the built-in user directory and changes the Admin account password to "Admin".

Was this article helpful?