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"/>
TagRequiredData TypeValid ValuesDefault ValueDescription
nameYesStringFree text, except for the following special characters:
/ \ : * ? " < > |
N/AThe short name of the service.
displayNameYesStringFree textN/AThe display name of the service.
descriptionNoStringFree textN/ADescription of the service.
useDefaultPrefixNoStringtrueN/AIf set to true, the service has the default prefix in its display name 
displayNamePrefixNoStringFree textN/AThe prefix applied to the display name.
startUpModeNoInteger0-33Service startup mode on system boot.
  • 0 = Manual
  • 1 = Automatic
  • 2 = Disabled
  • 3 = Automatic Delayed Start
sidTypeNoInteger0, 1, 30The Windows security identifier type for the service.
  • 0 = None
  • 1 = Unrestricted
  • 3 = Restricted
programTypeYesInteger1-21The type of service. 
  • 1 = Application (always running)
  • 2 = Task (runs and stops upon completion)


Container Tag: Program

<Program executable="C:\steamcmd\blackwake\BlackwakeServer.exe" workingDir="C:\steamcmd\blackwake" parameters="-batchmode -nographics" delay="3000"/>
TagRequiredData TypeValid ValuesDefault ValueDescription
executableYesStringValid Windows path + filename + extensionN/AThe name of the program to be run including the full path and file extension.
workingDirYesStringValid Windows path.N/AThe full path to the working directory for the service.
parametersNoStringFree textN/AParameters to be passed to the program.
delayNoIntegerGreater than 03000The number of milliseconds the service is likely to take to start.
ForceReplaceNoBooleantrue or falsefalseForce 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>


TagRequiredData TypeValid ValuesDefault ValueDescription
Process priority= (attribute setting)NoInteger0-50Apply a runtime scheduling priority to the program.
  • 0 = Normal 
  • 1 = Idle
  • 2 = High
  • 3 = Real-Time
  • 4 = Below Normal
  • 5 = Above Normal
Process affinity= (attribute setting)NoDecimal IntegerGreater than or equal to 00Apply a CPU affinity mask to the program to bind it to specific CPUs or cores. 
  • 0 = no affinity
  • 1 = CPU 1
  • 2 = CPU 2
  • 3 = CPU 1 + 2
  • and so on...
The maximum possible/recognized mask value depends on the bit size variant of the operating system and the FireDaemon Pro software (i.e. 32 or 64 bit).

Note: the mask value must be a decimal value, not binary, not hexadecimal.
AppendLogsNoBooleantrue or falsetrueWhether to append to or overwrite the debug log file.
EventLoggingNoBooleantrue or false trueWhether the service logs event notifications to the Windows Event Log. 
InteractWithDesktopNoBooleantrue or falsefalseWhether the service is allowed to interact with the desktop. 
ConsoleAppNoBooleantrue or falsefalseWhether the service is a console-based application.
CtrlCNoBooleantrue or falsefalseThe event that is sent to a Console Application during a shutdown. 
  • 0 = Ctrl+Break
  • 1 = Ctrl+C
UponExitNoInteger0-77FireDaemon Pro action upon program exit.
  • 0 = Disabled
  • 1 = Restart the program
  • 2 = Terminate FireDaemon
  • 3 = Stop FireDaemon
  • 4 = Report the Termination
  • 5 = Reboot
  • 6 = Retry on regular failures, complete on success
  • 7 = Retry on regular and unexpected failures, complete on success 
UponFlapNoInteger0-33FireDaemon Pro flap detection setting. 
  • 0 = Terminate the program
  • 1 = Terminate FireDaemon
  • 2 = Stop FireDaemon
  • 3 = Stop FireDaemon unless scheduled
FlapCountNoIntegerGreater than or equal to 010The maximum number of times the program can be restarted before the flap action is taken.
UponFailNoInteger0-40FireDaemon Pro fail detection setting. 
  • 0 = Disabled
  • 1 = Terminate the program
  • 2 = Terminate FireDaemon
  • 3 = Stop FireDaemon
  • 4 = Stop FireDaemon unless scheduled
FailCountNoIntegerGreater than or equal to 01The maximum number of times the program can be restarted before the fail action is taken.
UponHangNoInteger0-21FireDaemon Pro hang detection setting. 
  • 0 = Disabled
  • 1 = Report
  • 2 = Terminate Program
    (=> lifecycle), after
HangPeriodNoIntegerGreater than or equal to 03The number of minutes FireDaemon Pro will wait before hard terminating the program.
ShutdownTypeNoInteger0-22The method that FireDaemon uses to shut down the program 
  • 0 = Forceful Termination
  • 1 = Induced Exit
  • 2 = Graceful Close
ShutdownDelayNoIntegerGreater than or equal to 05000The 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.
PreShutdownNoBooleantrue or falsefalseWhether to enable Pre-Shutdown notifications. 
PreShutdownDelayNoIntegerGreater than or equal to 0180000The number of milliseconds the Service Control Manager will wait before terminating the service.
PreShutdownOrderNoBooleantrue or falsefalseWhether to include the service in the list of Pre-shutdown enabled services. 
ShowWindowNoInteger0-30How FireDaemon Pro initially displays interactive services.
  • 0 = Normal
  • 1 = Hidden
  • 2 = Minimized
  • 3 = Maximized
JobTypeNoInteger0-20Optionally places the program in a Global or Local Job Group. 
  • 0 = No Job
  • 1 = Global Job
  • 2 = Local Job
LoadOrderGroupNoStringA-Za-z0-9N/AThe name of the Load Order Group in which to place the service. 

Container Tag: Dependencies

<Dependencies>
        <GroupName>Event Log</GroupName>
        <ServiceName>Audiosrv</ServiceName>
</Dependencies>
TagRequiredData TypeValid ValuesDefault ValueDescription
GroupNameNoStringFree textN/AForce this service to depend on the named Load Order Group. Multiple GroupName tags can be specified. 
ServiceNameNoStringFree textN/AForce 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>
TagRequiredData TypeValid ValuesDefault ValueDescription
AccountNameNoStringFree textLocalSystem 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 PasswordNoStringFree textN/APassword for the account.


Container Tag: Redirect IO

<RedirectIO>
        <Stdout>C:\steamcmd\blackwake\LogTest.log</Stdout>
        <Stderr>C:\steamcmd\blackwake\LogTest1.log</Stderr>
</RedirectIO>
TagRequiredData TypeValid ValuesDefault ValueDescription
StdoutNoStringValid Windows path + filename + extensionN/AFull path and name of the destination file for the Stdout output.
StderrNoStringValid Windows path + filename + extensionN/AFull 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"/>
TagRequiredData TypeValid ValuesDefault ValueDescription
levelNoInteger0, 2, 40The debug logging level.
  • 0 = Quiet (none)
  • 2 = Verbose
  • 4 = Very Verbose
filePathNoStringValid Windows path + filename + extensionN/AFull path and name of the destination file for the debug output.


Container Tag: Environment

<Environment>
        <Variable name="PATH">%PATH%</Variable>
</Environment>
TagRequiredData TypeValid ValuesDefault ValueValid Values
VariableNoStringFree textN/ADefines 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>
TagRequiredData TypeValid ValuesDefault ValueDescription
SMFEnabledNoBooleantrue or falsetrueEnable or disable the Service Monitoring Facility (SMF).
SMFFrequencyNoIntegerZero, or a value greater than 505000The 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>
NameAttribute or ElementRequiredValid ValuesDefault ValueDescription
launchDelaySecondsAttributeNoGreater than 00The 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


NameAttribute or ElementRequiredValid ValuesDefault ValueDescription
nameAttributeYesStringN/AThe name of the schedule.
inactiveAttributeNotrue or falsefalseSpecifies whether a schedule is inactive. If the value is false, the schedule is active.
skip_delayed_onsetAttributeNotrue or falsefalseConfigures 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_boundaryElementNoN/AN/ASpecifies 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.
durationElementNoN/AN/ASpecifies the duration of the schedule.

The options depend on the selected duration specification type.
  • iso_duration specifies a time interval as a duration data type. If iso_duration is used, a "value" attribute is required.

  • attributive_duration specifies a time interval via attributes. The time interval may be entered in some combination of seconds, minutes, hours, days, weeks, months, and years.

These attributes accept integer values both of which are optional.
intervalElementYesN/AN/ASpecifies 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">


NameAttribute or ElementRequiredValid ValuesDefault ValueDescription
subintervalElementNoN/AN/ASpecifies a subinterval contained within the schedule's main interval.
granularityAttributeYes

One of the following:

  • second_interval
  • minute_interval
  • hour_interval
  • day_interval
  • week_interval
  • month_interval
  • year_interval

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.
lengthAttributeNoIntegers greater than or equal to 1 or "leap_year_factor"1The 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_repetitionsAttributeNoIntegers greater than or equal to 00An 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.
blueprintAttributeYes

One of the following:

  • itemized
  • evenly_clocked
  • subinterval_range
  • subrange_interval
  • remainder_subrange_interval
  • fixed_duration
  • fixed_subrange_duration
N/ASpecifies the type of subinterval schedule.

It may take one of the following values:
  • itemized - Each onset is specified individually.
  • evenly_clocked - All onsets are equalized at the sublevel. The schedule is run at the same time within each interval. For example, a weekly schedule is run at the same time each specified day, and a daily schedule is run at the same minute each specified hour.
  • subinterval_range - Onsets are specified in pairs denoting the start and end of a range for subintervals (if end=start it means the whole period of the main interval). All onsets are equalized at the sublevel. The scheduling engine generates onsets with the frequency as specified by the subinterval, actionized within the interval range.
  • subrange_interval - Onsets are specified in pairs denoting the start and end of a subrange for subintervals (if end=start it means the whole period of the subrange interval). The length of the subrange is defined by the sub granularity as specified by the subinterval. All onsets are equalized at the sublevel, additionally all end onsets are equalized to their start counterpart. The scheduling engine generates onsets with the frequency as specified by the subinterval, actionized within the subinterval range.
  • remainder_subrange_interval All onsets denote the start of a subrange for subintervals, the end of the subrange is implicitly capped. The length of the subrange is defined by the subgranularity as specified by the subinterval. All onsets are equalized at the sublevel. The scheduling engine generates onsets with the frequency as specified by the subinterval, actionized within the subinterval range.
  • fixed_duration - Onsets are specified in pairs denoting start and end of duration. All onsets are equalized at the sublevel.
  • fixed_subrange_duration - Onsets are specified in pairs denoting start and end of duration but on the same subgranularity. All onsets are equalized at the sublevel.
onsetElementYesN/AN/AThe onset repetition of the schedule.

It accepts the following values in unsigned integers:
  • second
  • minute
  • hour
  • monthday
  • month
  • yearday
  • year
For schedules that refer to specific days of the week or a range of days, the following values are also valid:
  • weekday refers to the day of the week that the schedule runs. Integers between 0 and 6 are accepted, where 0 corresponds to Monday and 6 corresponds to Sunday.
  • first_dow refers to the first day of the week that the schedule runs. The default value is 0 for Monday if not specified.
  • nth_kday_of_month  refers to the "Nth day of the week in a month" that a schedule runs, e.g. "3rd Monday in March". The attribute accepts integers between 1 and 5, where 1 = 1st day, 2 = 2nd day and so on. 


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>
NameAttribute or ElementRequiredValid ValuesDefault ValueDescription
OnLaunchProgramElementNoN/AN/ASpecifies the event program that runs when the corresponding service is launched.

To specify multiple launch event programs, repeat this container tag.
OnTerminationProgramElementNoN/AN/ASpecifies 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"/>
TagRequiredData TypeValid ValuesDefault ValueDescription
executableYes
(Only when the container tag is specified)
StringValid Windows path + filename + extensionN/AFull path to and name of the event program to be run.
workingDirYes
(Only when the container tag is specified)
StringValid Windows pathN/AFull path to the working directory for the event program.
parametersNoStringFree textN/AParameters to be passed to the event program.

The parameter string can include environment variables.
delayNoIntegerGreater than 03000The time in milliseconds to wait for the event program to complete.
dispositionNoInteger1-3 (Launch)
1-6 (Termination)
1

For OnLaunchProgram:

  • 1 = Before Process Launch
  • 2 = After Process Launch
  • 3 = Send Command

For OnTerminationProgram:

  • 1 = Before Process Termination
  • 2 = After Process Termination
  • 3 = Send Command
  • 4 = Send Close
  • 5 = After Process Completion
  • 6 = After Process Crash
detachedNoBooleantrue or falsefalse

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>
TagRequiredData TypeValid ValuesDefault ValueDescription
EnabledYesBooleantrue or falsefalseWhether dialog checking is enabled
CloseAllYesBooleantrue or falsefalseWhether all dialogs are closed or closed just for this program
CheckFrequencyYesIntegerGreater than 05000The frequency (in milliseconds) with which FireDaemon Pro checks for new dialog boxes. 
IgnoreUnknownsYesBooleantrue or falsefalseIf enabled, FireDaemon Pro will ignore dialog boxes for which there are no responses. 
LogFileNoText StringValid Windows path + filename + extensionN/AIf enabled, the contents of dialog boxes are logged to this file. 
ResponsesYesContainerN/AN/AContains a list of dialog responses


Container Tag: DlgResponder / Responses / Response

<Responses>
    <Response>
        <TitleString>TestResponse</TitleString>
        <ContentString>Test</ContentString>
        <Response>Submit</Response>
    </Response>
</Responses>
TagRequiredData TypeValid ValuesDefault ValueDescription
TitleStringNo (*)StringFree textN/AThe title of the dialog box.
ContentStringNo (*)StringFree textN/AThe full or partial text content of the dialog box. 
ResponseNoStringFree textN/AThe 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>
TagRequiredData TypeValid ValuesDefault ValueDescription
FirstFailureYesInteger0-30Recovery action in the event of a first failure.
  • 0 = Take no Action
  • 1 = Restart the Service
  • 2 = Restart the Computer
  • 3 = Run a Program
SecondFailureYesInteger0-30Recovery action in the event of a second failure.
  • 0 = Take no Action,
  • 1 = Restart the Service
  • 2 = Restart the Computer
  • 3 = Run a Program
SubsequentYesInteger0-30Recovery action in the event of a third and subsequent failure.
  • 0 = Take no Action
  • 1 = Restart the Service
  • 2 = Restart the Computer
  • 3 = Run a Program
ResetFailCountAfterYesIntegerGreater than or equal to 00The time (in seconds) after which the failure counter is reset to zero 
RestartServiceDelayYesIntegerGreater than or equal to 00The time (in milliseconds) after which a failed service is restarted. 
RestartComputerDelayYesIntegerGreater than or equal to 00The time (In milliseconds) to wait before restarting the system. 
Program (+)NoStringValid Windows path + filename + extensionN/AThe full path and name of the program to run. 
CommandLineParamsNoStringFree textN/AThe parameters to be passed to the executable program.
AppendFailCountYesBooleantrue or falsefalseWhether the failure count is appended to the command line parameters (/fail=%1%).
EnableActionsForStopWithErrorsYesBooleantrue or falsefalseWhether failure actions are triggered if the service stops with an error.
SendMsgYesBooleantrue or falsefalseWhether to broadcast a message to other computers on the network before a computer restart.
RebootMsgNoStringFree textN/AThe message to be broadcast.


(+) Note: This tag is required if Run a Program is specified as a first, second or subsequent recovery action.