Step 2 – Servalot Configuration

Create a copy of the ExampleService.ddc file in the Servalot\config directory and rename with a filename that describes your service (e.g. MyNewService.ddc). Open and edit this file with a text editor.

servalotconfig

The format of the configuration file is a follows:

  • Comment lines begin with “//” and are ignored by Servalot
  • The first value on non-comment lines is the configuration setting name, followed by a field name/value separator “|” and then the configuration setting value. Configuration settings that allow multiple values will have multiple “|” to separate each value.

Edit the configuration as required and save. Further details of each of the setting fields are described below.

Field Name Description Example
LICENCEFILE The name of the licence file. Typically use servalot.gal. servalot.gal
COMMAND The command used to start the service. If this command is an executable (.exe) file, Servalot will be able to interact directly and capture output. If this file is a batch or cmd file (.bat / .cmd), Servalot will not be able to capture the output but can monitor all other activities. \\myserver\smallworld\config\dsst_server.bat
WORKINGDIRECTORY The directory where the service starts. This is particularly important if the called COMMAND expects to find other files in relative directory paths. \\myserver\smallworld\config
ARGUMENTS The command line arguments passed to the COMMAND.
SERVICEUPDATEINTERVAL The frequency which Servalot checks on the health of the service in milliseconds. Faster than 10000 will cause undue load on the processor for minimal benefit. 10000
ALLOWCHILDPROCESSESTOOUTLIVEPARENT Allow new processes started by COMMAND to continue running after the parent process (i.e. the COMMAND process) is stopped. false
PROMOTECHILDRENTOPARENT If COMMAND starts new processes, promote those processes with the matching name to “parent” status. This is handy if you want the service to stop when there are no “parent” processes running and when the “parent” process is not the initial process as called by COMMAND. ALLOWCHILDPROCESSESTOOUTLIVEPARENT needs to be set to false for this option to be used by Servalot. sw_magik_win32.exe
KILLCHILDPROCESSONSTOP Stop any child processes when the service stops. true
ALERTONPARTIALCHILDPROCESSESCLOSURE Send an email alert when any child process stops. false
STOPONPARTIALCHILDPROCESSESCLOSURE Stop service when any child process stops. false
PROCESSMONITORSTARTUPDURATION Watch all processes more closely than normal to check for any starting child processes during this period in milliseconds. Setting this to excessive durations causes undue load on the CPU. A reasonable value is somewhere between 20000 and 360000 depending on the complexity of the starting service. 180000
PROCESSMONITORINTERVAL Frequency in milliseconds of checking the host server processes after the startup duration (see above). Faster than 10000 will cause undue load on the processor for minimal benefit. 10000
EMAILSCHEDULE The schedule when to send email reports (this is in addition to other email alerts such as services starting and stopping). The interval between reports should be not less than 5 minutes and may be multiple times per day. For example:

9:00|12:00|17:00 would trigger these reports to be sent at 9:00am, 12:00pm and 5:00pm.

9:00
EMAILHTML Use HTML formatting for the email. If false, text formatting is used. true
EMAILHOST Name of the SMTP email host. mail.mycompany.com
EMAILPORT Port of the SMTP email host. 25
EMAILUSERNAME SMTP username.
EMAILPASSWORD SMTP password.
EMAILFROMADDRESS From email address. support@mycompany.com
EMAILFROMNAME From email address name. support@mycompany.com
EMAILTO Email recipient. support@mycompany.com
EMAILCC Email CC recipient.
EMAILBCC Email BCC recipient.
KILLPROCESSESONSTOP Name of processes to kill on stopping regardless of whether they belong to the service or not (eg. java.exe|node.exe)
KILLPROCESSESONSTART Name of processes to kill on starting regardless of whether they belong to the service (eg. java.exe|node.exe)
ENVIRONMENT Environment variables to set as required by the COMMAND. If the command sets its own environment variables after being call, this is not required.