The tables below summarize the XML tags in the service definition file along with their valid values.
Container Tag: Identification
<Identification name="Blackwake" displayName="Blackwake Dedicated Game Server" description="The service for Blackwake server." useDefaultPrefix="true" startUpMode="3" sidType="0" programType="1"/>
Tag | Required | Data Type | Valid Values | Default Value | Description |
---|---|---|---|---|---|
name | Yes | String | Free text, except for the following special characters:/ \ : * ? " < > | | N/A | The short name of the service. |
displayName | Yes | String | Free text | N/A | The display name of the service. |
description | No | String | Free text | N/A | Description of the service. |
useDefaultPrefix | No | String | true | N/A | If set to true, the service has the default prefix in its display name |
displayNamePrefix | No | String | Free text | N/A | The prefix applied to the display name. |
startUpMode | No | Integer | 0-3 | 3 | Service startup mode on system boot.
|
sidType | No | Integer | 0, 1, 3 | 0 | The Windows security identifier type for the service.
|
programType | Yes | Integer | 1-2 | 1 | The type of service.
|
Container Tag: Program
<Program executable="C:\steamcmd\blackwake\BlackwakeServer.exe" workingDir="C:\steamcmd\blackwake" parameters="-batchmode -nographics" delay="3000"/>
Tag | Required | Data Type | Valid Values | Default Value | Description |
---|---|---|---|---|---|
executable | Yes | String | Valid Windows path + filename + extension | N/A | The name of the program to be run including the full path and file extension. |
workingDir | Yes | String | Valid Windows path. | N/A | The full path to the working directory for the service. |
parameters | No | String | Free text | N/A | Parameters to be passed to the program. |
delay | No | Integer | Greater than 0 | 3000 | The number of milliseconds the service is likely to take to start. |
ForceReplace | No | Boolean | true or false | false | Force the reinstallation of the service if it already exists. Note: This option is not configurable through the GUI. |
Container Tag: Options
<Options>
<Process priority="0"/>
<AppendLogs>true</AppendLogs>
<EventLogging>true</EventLogging>
<InteractWithDesktop>false</InteractWithDesktop>
<ConsoleApp>true</ConsoleApp>
<CtrlC>false</CtrlC>
<UponExit>7</UponExit>
<UponFlap>0</UponFlap>
<FlapCount>10</FlapCount>
<UponFail>1</UponFail>
<FailCount>1</FailCount>
<UponHang>2</UponHang>
<HangPeriod>3</HangPeriod>
<ShutdownType>2</ShutdownType>
<ShutdownDelay>5000</ShutdownDelay>
<PreShutdown>true</PreShutdown>
<PreShutdownDelay>180000</PreShutdownDelay>
<PreShutdownOrder>true</PreShutdownOrder>
<ShowWindow>0</ShowWindow>
<JobType>0</JobType>
</Options>
Tag | Required | Data Type | Valid Values | Default Value | Description |
---|---|---|---|---|---|
Process priority= (attribute setting) | No | Integer | 0-5 | 0 | Apply a runtime scheduling priority to the program.
|
Process affinity= (attribute setting) | No | Decimal Integer | Greater than or equal to 0 | 0 | Apply a CPU affinity mask to the program to bind it to specific CPUs or cores.
Note: the mask value must be a decimal value, not binary, not hexadecimal. |
AppendLogs | No | Boolean | true or false | true | Whether to append to or overwrite the debug log file. |
EventLogging | No | Boolean | true or false | true | Whether the service logs event notifications to the Windows Event Log. |
InteractWithDesktop | No | Boolean | true or false | false | Whether the service is allowed to interact with the desktop. |
ConsoleApp | No | Boolean | true or false | false | Whether the service is a console-based application. |
CtrlC | No | Boolean | true or false | false | The event that is sent to a Console Application during a shutdown.
|
UponExit | No | Integer | 0-7 | 7 | FireDaemon Pro action upon program exit.
|
UponFlap | No | Integer | 0-3 | 3 | FireDaemon Pro flap detection setting.
|
FlapCount | No | Integer | Greater than or equal to 0 | 10 | The maximum number of times the program can be restarted before the flap action is taken. |
UponFail | No | Integer | 0-4 | 0 | FireDaemon Pro fail detection setting.
|
FailCount | No | Integer | Greater than or equal to 0 | 1 | The maximum number of times the program can be restarted before the fail action is taken. |
UponHang | No | Integer | 0-2 | 1 | FireDaemon Pro hang detection setting.
|
HangPeriod | No | Integer | Greater than or equal to 0 | 3 | The number of minutes FireDaemon Pro will wait before hard terminating the program. |
ShutdownType | No | Integer | 0-2 | 2 | The method that FireDaemon uses to shut down the program
|
ShutdownDelay | No | Integer | Greater than or equal to 0 | 5000 | The maximum time (in milliseconds) that FireDaemon will wait after initiating an Induced Exit or Graceful Close shutdown action before terminating the program. Setting this value to 0 effectively disables graceful shutdown. |
PreShutdown | No | Boolean | true or false | false | Whether to enable Pre-Shutdown notifications. |
PreShutdownDelay | No | Integer | Greater than or equal to 0 | 180000 | The number of milliseconds the Service Control Manager will wait before terminating the service. |
PreShutdownOrder | No | Boolean | true or false | false | Whether to include the service in the list of Pre-shutdown enabled services. |
ShowWindow | No | Integer | 0-3 | 0 | How FireDaemon Pro initially displays interactive services.
|
JobType | No | Integer | 0-2 | 0 | Optionally places the program in a Global or Local Job Group.
|
LoadOrderGroup | No | String | A-Za-z0-9 | N/A | The name of the Load Order Group in which to place the service. |
Container Tag: Dependencies
<Dependencies>
<GroupName>Event Log</GroupName>
<ServiceName>Audiosrv</ServiceName>
</Dependencies>
Tag | Required | Data Type | Valid Values | Default Value | Description |
---|---|---|---|---|---|
GroupName | No | String | Free text | N/A | Force this service to depend on the named Load Order Group. Multiple GroupName tags can be specified. |
ServiceName | No | String | Free text | N/A | Force this service to depend on the named service. Multiple ServiceName tags can be specified. |
Container Tag: Logon
<Logon>
<AccountName>HOST\auser</AccountName>
<AccountPassword>VerystrongPassword123!</AccountPassword>
</Logon>
Tag | Required | Data Type | Valid Values | Default Value | Description |
---|---|---|---|---|---|
AccountName | No | String | Free text | LocalSystem | Local or domain user account to run the service as. Refer to the Logon Account description in Settings Tab for details about valid values. |
Account Password | No | String | Free text | N/A | Password for the account. |
Container Tag: Redirect IO
<RedirectIO>
<Stdout>C:\steamcmd\blackwake\LogTest.log</Stdout>
<Stderr>C:\steamcmd\blackwake\LogTest1.log</Stderr>
</RedirectIO>
Tag | Required | Data Type | Valid Values | Default Value | Description |
---|---|---|---|---|---|
Stdout | No | String | Valid Windows path + filename + extension | N/A | Full path and name of the destination file for the Stdout output. |
Stderr | No | String | Valid Windows path + filename + extension | N/A | Full path and name of the destination file for the Stderr output. Specify ToStdout to force Stderr output to be logged to Stdout. |
Container Tag: Debug
<Debug level="2" filePath="C:\steamcmd\blackwake\Test.log"/>
Tag | Required | Data Type | Valid Values | Default Value | Description |
---|---|---|---|---|---|
level | No | Integer | 0, 2, 4 | 0 | The debug logging level.
|
filePath | No | String | Valid Windows path + filename + extension | N/A | Full path and name of the destination file for the debug output. |
Container Tag: Environment
<Environment>
<Variable name="PATH">%PATH%</Variable>
</Environment>
Tag | Required | Data Type | Valid Values | Default Value | Valid Values |
---|---|---|---|---|---|
Variable | No | String | Free text | N/A | Defines an environment variable that is passed into the service when it starts. The name of the environment variable must be specified using a name attribute in the tag. For more details, see Environment Variables. |
Container Tag: SMF
<SMF>
<SMFEnabled>true</SMFEnabled>
<SMFFrequency>5000</SMFFrequency>
</SMF>
Tag | Required | Data Type | Valid Values | Default Value | Description |
---|---|---|---|---|---|
SMFEnabled | No | Boolean | true or false | true | Enable or disable the Service Monitoring Facility (SMF). |
SMFFrequency | No | Integer | Zero, or a value greater than 50 | 5000 | The polling interval (in milliseconds). This is the interval for FireDaemon Pro to read and populate the service's memory and CPU statistics. If this is set to zero, statistics updates will be disabled for the service. Note: This also sets the length of time after a service start in which Flap Detection is active. |
Container Tag: Scheduling
<Scheduling launchDelaySeconds="5">
<fds:schedules xmlns:fds="http://xml.firedaemon.com/scheduling/v3"/>
</Scheduling>
Name | Attribute or Element | Required | Valid Values | Default Value | Description |
---|---|---|---|---|---|
launchDelaySeconds | Attribute | No | Greater than 0 | 0 | The number of seconds FireDaemon will wait before launching the service. |
Container Tag: Scheduling/fds:schedules/fds:schedule
<Scheduling launchDelaySeconds="5">
<fds:schedules xmlns:fds="http://xml.firedaemon.com/scheduling/v3">
<schedule name="New Schedule" inactive="true" skip_delayed_onset="false">
<activity_boundary from="2020-01-22T00:00:00" until="2020-01-23T00:00:00"/>
<interval xsi:type="fds:attributive_interval" granularity="day_interval" length="1" onset_repetitions="0" blueprint="evenly_clocked">
<onset second="0" minute="0" hour="0" monthday="0" month="0" yearday="0" weekday="0" first_dow="0"/>
</interval>
</schedule>
</fds:schedules>
</Scheduling>
The fds:schedules tag inside the Scheduling tag contains the schedule details for a FireDaemon Pro service.
The fds:schedules tag contains the fds:schedule tag for each schedule. All schedules belong to the namespace:
http://xml.firedaemon.com/scheduling/v3
Schedule – Elements and Attributes
Name | Attribute or Element | Required | Valid Values | Default Value | Description |
---|---|---|---|---|---|
name | Attribute | Yes | String | N/A | The name of the schedule. |
inactive | Attribute | No | true or false | false | Specifies whether a schedule is inactive. If the value is false, the schedule is active. |
skip_delayed_onset | Attribute | No | true or false | false | Configures the scheduling engine to skip onsets that are too late and to instead process the next interval. For example, if set to true and restarting the program every minute took longer than a minute, the onset for the current (minute) interval would be skipped and the scheduling engine yields the next upcoming minute for the next restart. If this option is false, the scheduling engine would yield the onset for the current (minute) interval. |
activity_boundary | Element | No | N/A | N/A | Specifies the period during which the schedule may run. The from and until attributes specify the start and end of the interval, in DateTime format. If the from date is not specified, the schedule begins immediately. If the until date is not specified, the schedule runs without end, i.e. indefinitely. |
duration | Element | No | N/A | N/A | Specifies the duration of the schedule. The options depend on the selected duration specification type.
These attributes accept integer values both of which are optional. |
interval | Element | Yes | N/A | N/A | Specifies the period over which a schedule takes place. The attributes for the interval depends on the interval type specified. Currently, the available option is attributive_interval . |
Element Interval: Attributes
<interval xsi:type="fds:attributive_interval" granularity="day_interval" length="1" onset_repetitions="0" blueprint="evenly_clocked">
Name | Attribute or Element | Required | Valid Values | Default Value | Description |
---|---|---|---|---|---|
subinterval | Element | No | N/A | N/A | Specifies a subinterval contained within the schedule's main interval. |
granularity | Attribute | Yes | One of the following:
| The time interval at which a schedule repeats. When used with attributive_subinterval , the granularity specifies the time interval at which a schedule repeats within the main interval. | |
length | Attribute | No | Integers greater than or equal to 1 or "leap_year_factor" | 1 | The multiplier to stretch the interval's granularity - e.g. day_interval length 1 means daily, day_interval length 2 means every 2nd day. When used with a granularity of "year_interval", the value "leap_year_factor" specifies an interval that selects every leap year. When used with attributive_subinterval , the length stretches the granularity specified within the subinterval. |
onset_repetitions | Attribute | No | Integers greater than or equal to 0 | 0 | An optional upper limit of how many times a scheduled action (duration or restart) should be performed. Zero denotes unlimited repetitions or more specifically until the end of the activity boundary; Positive integer values limit the number of repetitions. Upon reaching this limit, the schedule is considered completed. The default value is 0; a positive integer may be specified if a user sets a schedule directly via XML. |
blueprint | Attribute | Yes | One of the following:
| N/A | Specifies the type of subinterval schedule. It may take one of the following values:
|
onset | Element | Yes | N/A | N/A | The onset repetition of the schedule. It accepts the following values in unsigned integers:
|
Container Tag: EventPrograms
<EventPrograms>
<OnLaunchProgram executable="C:\steamcmd\blackwake\BlackwakeServer.exe" workingDir="C:\steamcmd\blackwake" delay="3000" disposition="2" detached="false"/>
<OnTerminationProgram executable="C:\steamcmd\steamcmd.exe" workingDir="C:\steamcmd" delay="3000" disposition="4" detached="false"/>
</EventPrograms>
Name | Attribute or Element | Required | Valid Values | Default Value | Description |
---|---|---|---|---|---|
OnLaunchProgram | Element | No | N/A | N/A | Specifies the event program that runs when the corresponding service is launched. To specify multiple launch event programs, repeat this container tag. |
OnTerminationProgram | Element | No | N/A | N/A | Specifies the event program that runs when the corresponding service is terminated. To specify multiple termination event programs, repeat this container tag. |
Element OnLaunchProgram/ OnTerminationProgram: Attributes
The following attributes are common to both the OnLaunchProgram and OnTerminationProgram container tags.
<OnLaunchProgram executable="C:\steamcmd\blackwake\BlackwakeServer.exe" workingDir="C:\steamcmd\blackwake" delay="3000" disposition="2" detached="false"/>
<OnTerminationProgram executable="C:\steamcmd\steamcmd.exe" workingDir="C:\steamcmd" delay="3000" disposition="4" detached="false"/>
Tag | Required | Data Type | Valid Values | Default Value | Description |
---|---|---|---|---|---|
executable | Yes (Only when the container tag is specified) | String | Valid Windows path + filename + extension | N/A | Full path to and name of the event program to be run. |
workingDir | Yes (Only when the container tag is specified) | String | Valid Windows path | N/A | Full path to the working directory for the event program. |
parameters | No | String | Free text | N/A | Parameters to be passed to the event program. The parameter string can include environment variables. |
delay | No | Integer | Greater than 0 | 3000 | The time in milliseconds to wait for the event program to complete. |
disposition | No | Integer | 1-3 (Launch) 1-6 (Termination) | 1 | For OnLaunchProgram:
For OnTerminationProgram:
|
detached | No | Boolean | true or false | false | Whether to run the event program attached or detached |
Container Tag: DlgResponder
<DlgResponder>
<Enabled>true</Enabled>
<CloseAll>false</CloseAll>
<CheckFrequency>5000</CheckFrequency>
<IgnoreUnknowns>false</IgnoreUnknowns>
<LogFile>C:\Users\mchar\OneDrive\Desktop\Test.log</LogFile>
<Responses>
<Response>
<TitleString>TestResponse</TitleString>
<ContentString>Test</ContentString>
<Response>Submit</Response>
</Response>
</Responses>
</DlgResponder>
Tag | Required | Data Type | Valid Values | Default Value | Description |
---|---|---|---|---|---|
Enabled | Yes | Boolean | true or false | false | Whether dialog checking is enabled |
CloseAll | Yes | Boolean | true or false | false | Whether all dialogs are closed or closed just for this program |
CheckFrequency | Yes | Integer | Greater than 0 | 5000 | The frequency (in milliseconds) with which FireDaemon Pro checks for new dialog boxes. |
IgnoreUnknowns | Yes | Boolean | true or false | false | If enabled, FireDaemon Pro will ignore dialog boxes for which there are no responses. |
LogFile | No | Text String | Valid Windows path + filename + extension | N/A | If enabled, the contents of dialog boxes are logged to this file. |
Responses | Yes | Container | N/A | N/A | Contains a list of dialog responses |
Container Tag: DlgResponder / Responses / Response
<Responses>
<Response>
<TitleString>TestResponse</TitleString>
<ContentString>Test</ContentString>
<Response>Submit</Response>
</Response>
</Responses>
Tag | Required | Data Type | Valid Values | Default Value | Description |
---|---|---|---|---|---|
TitleString | No (*) | String | Free text | N/A | The title of the dialog box. |
ContentString | No (*) | String | Free text | N/A | The full or partial text content of the dialog box. |
Response | No | String | Free text | N/A | The text of the button to be pressed, e.g. Cancel or OK. |
(*) Note: At least one of the TitleString or ContentString tags is required.
Container Tag: Recovery
<Recovery>
<FirstFailure>3</FirstFailure>
<SecondFailure>1</SecondFailure>
<SubSequent>1</SubSequent>
<ResetFailCountAfter>432000</ResetFailCountAfter>
<RestartServiceDelay>300000</RestartServiceDelay>
<RestartComputerDelay>0</RestartComputerDelay>
<Program>C:\Windows\notepad.exe</Program>
<AppendFailCount>true</AppendFailCount>
<EnableActionsForStopWithErrors>true</EnableActionsForStopWithErrors>
<SendMsg>false</SendMsg>
</Recovery>
Tag | Required | Data Type | Valid Values | Default Value | Description |
---|---|---|---|---|---|
FirstFailure | Yes | Integer | 0-3 | 0 | Recovery action in the event of a first failure.
|
SecondFailure | Yes | Integer | 0-3 | 0 | Recovery action in the event of a second failure.
|
Subsequent | Yes | Integer | 0-3 | 0 | Recovery action in the event of a third and subsequent failure.
|
ResetFailCountAfter | Yes | Integer | Greater than or equal to 0 | 0 | The time (in seconds) after which the failure counter is reset to zero |
RestartServiceDelay | Yes | Integer | Greater than or equal to 0 | 0 | The time (in milliseconds) after which a failed service is restarted. |
RestartComputerDelay | Yes | Integer | Greater than or equal to 0 | 0 | The time (In milliseconds) to wait before restarting the system. |
Program (+) | No | String | Valid Windows path + filename + extension | N/A | The full path and name of the program to run. |
CommandLineParams | No | String | Free text | N/A | The parameters to be passed to the executable program. |
AppendFailCount | Yes | Boolean | true or false | false | Whether the failure count is appended to the command line parameters (/fail=%1%). |
EnableActionsForStopWithErrors | Yes | Boolean | true or false | false | Whether failure actions are triggered if the service stops with an error. |
SendMsg | Yes | Boolean | true or false | false | Whether to broadcast a message to other computers on the network before a computer restart. |
RebootMsg | No | String | Free text | N/A | The message to be broadcast. |
(+) Note: This tag is required if Run a Program is specified as a first, second or subsequent recovery action.