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.
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.
|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.
|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|
|EMAILFROMADDRESS||From email email@example.com|
|EMAILFROMNAME||From email address firstname.lastname@example.org|
|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.|