FireDaemon daeMON 2 Users Guide


Last updated on August 11, 2018

FireDaemon daeMON is a command line tool that allows you to monitor and selectively restart individual or groups of FireDaemon Pro and Windows services. daeMON can be run from the command line or as a FireDaemon Pro service. daeMON can monitor CPU and Memory utilisation of individual services.


Last updated on August 11, 2018
  • Monitors individual or groups of Windows or FireDaemon Pro services
  • Monitors services for availability (service or process down), CPU and memory utilisation
  • Restarts or stops individual services or ordered groups of services should a service fail or hit CPU and/or memory thresholds
  • Dynamically update monitoring groups as FireDaemon services are installed or deleted
  • Ignore disabled or shutdown FireDaemon services, excluding them from monitoring
  • Ignore CPU and memory thresholds for finite monitoring intervals
  • Run in passive mode, just reporting monitoring events
  • Provide three logging output options: none, basic and verbose
  • Supplied as a lightweight standalone 32-bit or 64-bit executable – has no other dependencies
  • Multiple instances of daeMON can be installed to monitor multiple individual services or service groups
  • Can monitor local Windows and FireDaemon Pro services as well as services on remote machines


Last updated on August 11, 2018

FireDaemon daeMON is supplied as a ZIP file. Download the ZIP file from the FireDaemon daeMON website and unpack it to the directory of your choice.

Then copy daeMON-x86.exe (for 32-bit Windows) or daeMON-x64 (for 64-bit windows) to the folder of your choice on your local hard disk drive (e.g. C:Program FilesdaeMON).


Last updated on August 11, 2018

daeMON is straightforward to use. At an elevated command prompt, enter:

daemon.exe [Option] [Option] ...

Where Option is one or more of the following in combination:

-aMonitor all FireDaemon Pro services. Saves having to specify multiple -s. Disabled services are ignored. Services are enumerated alphabetically by service shortname.
-c nKill subprocess if process consumes more than n% CPU per core over the monitoring frequency. If your app is multithreaded across multiple cores, make n > 100.
-dDynamic service monitoring. Service list will be re-populated each monitoring cycle allowing for the dynamic inclusion/exclusion of services in the monitoring group. Useful in conjunction with -a.
-e shortnameService to ignore. Service short name must be supplied. Multiple -e can be supplied. Useful in conjunction with -a.
-f nMonitoring frequency in n-second intervals. If not specified, the default is 30 seconds.
-gDon't restart all services when monitoring in group mode. Only restart from the first failed service. So if three services are monitored: A, B and C and if B fails then only B and C will be restarted.
-hCommand line help.
-i nIgnore high CPU and memory across n x monitoring intervals. CPU and memory has to be greater than their respective limits for each monitoring interval before it is killed. This option has no effect without -c or -m.
-jJust stop all monitored services if one fails. Don't bother restarting anything.

During service enumeration (-a or -s) ignore services that are manual start and are stopped.
-l server=user:[email protected]User credentials for connecting to a remote machine. Multiple -l can be supplied. This option is not required to connect to a remote machine - only if specific authentication credentials are required
-m -nKill subprocess if process consumes more than n x MB of RAM over the monitoring frequency.
-oRun once. Don't continually monitor. Useful when wanting to just take a service snapshot.
-pPassive monitoring. If a service is down or a subprocess has crashed - don't bother restarting the service group.
-qQuiet mode. Don't bother logging anything.
-rRestart the individual services not the group. Works in conjunction with -j except that the individual service is not started again.
-s shortnameService to monitor. Service short name must be supplied. Multiple -s can be supplied. Overriden by -a. Disabled services are ignored. This can be the shortname of a built-in Windows service or a FireDaemon Pro service. Services specified using -s are monitored in the same order as specified on the command line and always supersede services enumerated via -a. Remote services can be specified as: \\server\service See -l for specifying credentials when connecting to a remote machine.
-vVerbose mode. Dump running state of service as well as process ID (PID) of subprocess.


Last updated on August 11, 2018

Below are some examples for using FireDaemon daeMON. For all of these examples, be sure to open an elevated command prompt and navigate to the directory containing your daeMON-x86.exe or daeMON-x64.exe file.

Replace daeMON.exe in the below examples with the name of the file you’re using.

Monitor and restart two services: A and B

daeMON.exe -s A -s B

Monitor and restart one service: A with a monitoring frequency of 60 seconds and run without logging.

daeMON.exe -s A -f 60 -q

Monitor and restart all FireDaemon services but do it only once. Don’t continue monitoring.

daeMON.exe -a -o

Monitor but don’t restart all FireDaemon services, except service B. Log additional service information. This allows you to dump all info about currently running FireDaemon Pro services but not enter a monitoring mode.

daeMON.exe -a -v -p -o -e B

Monitor service A locally and service B on machine called MyServer. Logon to MyServer as the MYDOMAIN domain user MyUser supplying password MyPassword.

daeMON.exe -s A -s \MyServerB -l MyServer=MyUser:[email protected]

6.Running daeMON as a FireDaemon Service

Last updated on August 11, 2018

Running daeMON as a FireDaemon Pro service is straightforward. First, download and install FireDaemon Pro from the FireDaemon website. Then set up a daeMON monitoring service per the screen shots below. You will need one service for each group of services you wish to monitor.

On the Program tab, set up FireDaemon Pro to run daeMON-x64.exe (or daeMON-x86.exe for 32-bit Windows) with the appropriate parameters. See the Usage section of this manual for a list of parameters.

FireDaemon daeMON as a FireDaemon service

If you do not want to see daeMON running, visit the Setting tab and uncheck Interact with Desktop. Leave this setting checked if you want to see daeMON running.

FireDaemon daeMON running as a FireDaemon service Settings Page

On the Lifecycle tab, uncheck Graceful Shutdown as it’s not required.

FireDaemon daeMON running as a FireDaemon service Lifecycle Page

Then click OK to finish setup and start daeMON as a FireDaemon service!

Monitoring Remote FireDaemon Services

To monitor remote FireDaemon Pro services effectively, ensure the FireDaemon Pro configuration directive “Upon Program Exit” is set to “Shutdown FireDaemon”. Should the remote subprocess fail for any reason, then FireDaemon Pro will shutdown and daeMON will notice that the remote service has stopped and restart it again.


For two specific examples of using FireDaemon daeMON to monitor services, visit our knowledge base entries on monitoring SRCDS and monitoring MySQL.

7.How CPU Load is Calculated

Last updated on August 11, 2018

CPU load is calculated once across each monitored interval as specified by the -f option. If the CPU load for a given process exceeds the threshold as specified by -c it is killed. The threshold can be ignored for a specific number of monitoring intervals by specifying the -i option. The process will only be killed if it exceeded the monitored threshold every time the CPU load was calculated across the ignored intervals.

For example: -f 30 -c 50 -i 5 means monitor every 30 seconds and when the CPU usage for the process is 50% across each of the 5 monitored intervals (ie 30 x 5 = 150 seconds), then kill it. Note that -i also works in conjunction with -m.

Suggest Edit