Introduction
A program like Iguana can be run in different modes depending on the operating system. These modes are known as Processes, Daemons, and Services.
Task [top]
Explain the differences between Daemons, Services, and Processes, and how Iguana can be run in each mode.
Implementation [top]
Process
- An instance of a particular executable that is being executed:
For example this could be an
.exe
program file or a Linux binary. A given application may have several processes running simultaneously. - Typically, an executing program can exist in one of three states:
- Running: Active
- Sleeping: Inactive
- Zombie: A process that has completed execution, but still has an entry in the process table
Daemon (Linux)
- A process which runs in the background and is not interactive.
- They have no controlling terminal on their own from the user’s perspective from the desktop.
- They continue to exist and operate regardless of any user being logged into the server if the computer is on.
Service (Windows)
- In Windows, daemons are called services, and behave exactly how daemons were previously described.
- They exist and operate independent of a user’s login session, and its status can be observed under the Services tab of Windows Task Manager.
How it works [top]
Iguana operates primarily as a service, because it was designed to do continuous integration processing tasks in the background. Therefore Iguana will usually be run as a Daemon or Service after installation. Because Iguana listens on a single port you will need multiple instances of Iguana to listen on multiple ports (one instance per port).
Running Iguana as a standalone process can be used for development or testing purposes and can be useful during the installation process. However when Iguana is run as a standalone process it will shutdown if the user account is logged off, or inactive — which is not suitable for a production system.
Note: You must run Iguana once to create the configuration file (such as the IguanaConfiguration.xml) as they are not included in the install.
During installation it can be useful to run Iguana for the first time as an executable to create configuration file.
If Iguana needs to be reset, it is important to check that before restarting that the Iguana daemon/service is not running at all, or in any of the states described prior (Running, Sleeping, Zombie) or you may experience weird Iguana behaviour such as port conflicts, immediate shutdown of Iguana, denied access to Logs etc.