Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
Python, Lua, Tcl, C and C++ training - public course schedule [here]
Private courses on your site - see [here]
Please ask about maintenance training for Perl, PHP, Java, Ruby, MySQL and Linux / Tomcat systems
The Kernel, Shells and Daemons. Greek Gods in computing

The Greek Gods didn't like washing up or ironing. So they employed mortals to to it. Problem was that those mortals didn't last for ever, and sometimes went on strike over one thing and another. So The Gods did a deal with some of the current batch of mortals, and it went like this: "We will make you immortal, and you, in perpituity, will do the particluar job that you're trained up for - be it washing, ironing ot cooking - queitly and without complaint unless there's a very serious issue that you need to tell us about. And the rest of the time you can just relax idly around". These immortal beings, but not deity, were known as the Daemons.

Nuts have a shell, and they have the edible (in some varieties) bit in the middle, which is known as the Kernel.

What's running on your Linux or Unix Computer?

Common Linux DaemonsYou'll have a Kernel at the centre of things, controlling uses of the memory and file system (and under Unix / Linux, devices are also treated as files). You'll have a shell through which an interactive user can interact with the system - enter commands from the keyboard (or an alterative is STDIN is rerouted) and output to the screen (or an alterative if STDOUT is rerouted). And you'll have a number of daemons - there to pick up background process requests such as ftp, sftp, ssh, sql and http and to look after resources like printers. There's more about individual daemons [here].

Daemon running - multiple, single, or started as requiredThere may be several users of the same daemon service at the same time. For example, two different individuals may want to connect to a web server to run ssh (secure terminal) sessions at the same time. So daemons are designed to sit awaiting a request, and when a request is received to spawn ("fork) a copy of themselves - also know as a "child process" to do the actual work, whilst the parent reverts to waiting for further requests. When the child has completed its work, it exits (dies) releasing the memory it was using back to the kernel. This is the model show in the middle column of the diagram.

Where it's planned / expected that a daemon will receive a very large number of requests, the process of forking and dieing would consume significant resource, so another model is employed. In such cases, a number of child processes are preforked and are available to be passed a request when one is received by the parent. And rather than exiting on completion, the child will signal back to the parent that it's done with the job it was given, and it will then be given another job to do in due course. This is the model used by the Apache httpd web server, and is shown in the left column of the diagram.

Some daemons are very rarely called upon, if ever ... but need to be available just in case. It's pretty rare for a remote system to set its time from your clock through the network time protocol, for example - but it's a usefully synchronisation service to have available. If all of these very rarely used daemons were to be running, and occupying memory, all the time then that would be an underutilisation of resources. So a single daemon - inetd or xinetd is run, which will manage the staring and stopping of the very rare daemons if they're called up. Ths is the model shown in the right column of the diagram.

When you start up a Linux or Unix system, you want appropriate daemons to start.

Here's how:
• The daemon programs themselves will be located in places like /usr/bin
• Scripts to control how each daemon is started and stopped will be in /etc/init.d
• Symbolic links in /etc/rc3.d will be provided as a patch panel to decide which daemon start scripts are to be run, and in what order (files starting with S are run in asciibetic order!)

The structure / directory names vary a little between Linux and Unix releases, I'm afraid, and there are a whole lot of rcX.d directories, where X is the runstate being entered. On many systems, you'll have a utility such as chkconfig to help you manage this setup. Run states are shown [here].
(written 2012-07-01, updated 2012-07-14)

Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
A101 - Web Application Deployment - Linux -An Introduction For Users
  [3819] Packing a tar, jar or war file - best practise - (2012-07-26)
  [3256] Displaying a directory or file system tree - Linux - (2011-04-22)
  [3179] Oops - I typed ci not vi, and have lost my file ... - (2011-02-21)
  [2831] Recording (a macro) in vi - (2010-06-27)
  [2636] Linux - useful tips including history and file name completion - (2010-02-15)
  [2494] Making Linux Politically correct - (2009-11-06)
  [2479] Accidentally typed ci rather than vi? - (2009-10-27)
  [2300] What does x on a linux directory mean? - (2009-07-21)
  [2299] How much space does my directory take - Linux - (2009-07-20)
  [2203] Always use su with minus. And where do programs come from? - (2009-05-27)
  [2201] Running straight from the jar, but not from a tar - (2009-05-26)
  [1904] Ruby, Perl, Linux, MySQL - some training notes - (2008-11-23)
  [1902] sstrwxrwxrwx - Unix and Linux file permissions - (2008-11-23)
  [1897] Keeping on an even keel - (2008-11-21)
  [1893] Some Linux and Unix tips - (2008-11-18)
  [1803] FTP passive mode - a sometimes cure for upload hangs - (2008-09-20)
  [1764] Yank and Push - copy and move in vi - (2008-08-21)
  [1651] ls command - favourite options - (2008-05-23)
  [1527] Selecting file names in a shell - one word or another - (2008-02-02)
  [1438] Copy and paste / cut and paste and other vi techniques - (2007-11-20)
  [1408] Wireless hotel tips - FTP and Skype connections failing - (2007-10-26)
  [1366] awk - a powerful data extraction and manipulation tool - (2007-09-25)
  [1288] Linux run states, shell special commands, and directory structures - (2007-08-03)
  [1287] Work and play at Well House Manor - Football and Shell Shortcuts - (2007-08-02)
  [1259] Where am I and how did I get here? - (2007-07-05)
  [1068] ls -l report, Linux / Unix - types and permssions - (2007-02-06)
  [1013] Copy multiple files - confusing error message from cp - (2006-12-30)
  [1012] Moving files between Windows / DOS and Linux / Unix - (2006-12-30)
  [984] Cardinal numbers and magic numbers - (2006-12-14)
  [749] Cottage industry or production line data handling methods - (2006-06-07)
  [711] THE home directory or MY home directory - (2006-05-06)
  [710] Linux training Glasgow, Python programming course Dundee - (2006-05-05)
  [703] Copying files and preserving ownership - (2006-04-28)
  [679] More or less on the edge of the page - (2006-04-11)
  [659] Web Application Components - (2006-03-28)
  [593] Finding where the disc space has gone - (2006-02-06)
  [431] File permissions of Linux and Unix systems - (2005-08-31)
  [430] Linux commands - some basics - (2005-08-31)
  [249] An easy way out - (2005-03-17)
  [152] Aladdin, or careful what you wish. - (2004-12-15)
  [74] pushd and popd - (2004-10-05)
  [73] vi - full circle - (2004-10-04)

A164 - Web Application Deployment - Services and Regular Jobs
  [4487] Starting MySQL. ERROR! The server quit without updating PID file - how we fixed it. - (2015-05-06)
  [3792] Managing daemons from a terminal session - (2012-07-01)
  [3143] On time - (2011-01-23)
  [3011] What are .pid files? - (2010-10-23)
  [2182] What Linux run level am I in? - (2009-05-15)
  [2145] Using the internet to remotely check for power failure at home (PHP) - (2009-04-29)
  [1903] daemons - what is running on my Linux server? - (2008-11-23)
  [1765] Dialects of English and Unix - (2008-08-21)
  [1733] memcached - overview, installation, example of use in PHP - (2008-08-02)
  [1731] Apache httpd, MySQL, PHP - installation procedure - (2008-08-01)
  [1700] FTP server on Fedora Linux - (2008-07-06)
  [1633] Changing a screen saver from a web page (PHP, Perl, OSX) - (2008-05-06)
  [1553] Automatic startup and shutdown of Tomcat - (2008-02-24)
  [1028] Linux / Unix - process priority and nice - (2007-01-10)
  [907] Browser -> httpd -> Tomcat -> MySQL. Restarting. - (2006-10-28)
  [544] Repeating tasks with crontab - (2005-12-27)

A167 - Web Application Deployment - Shell Programming (bash)
  [4587] shell - bash. Writing conditional tests and statements - the options available - (2015-11-28)
  [4586] Extending your bash shell with aliases, functions and extra commands - (2015-11-28)
  [4584] Bash ... some new scripts to - handling user input - (2015-11-27)
  [4400] Commenting out an echo killed my bash backup script - (2015-01-19)
  [1468] Lexical v Arithemetic testing, Bash and Perl - (2007-12-11)
  [1345] Perl and Shell coding standards / costs of an IT project - (2007-09-11)
  [827] No news is good news with Unix and Linux - (2006-08-10)
  [64] Shell Script for CGI on the web - (2004-09-26)
  [63] Almost like old times - (2004-09-26)

Back to
Solution looking for a problem? Lookahead and Lookbehind
Previous and next
Horse's mouth home
Forward to
Managing daemons from a terminal session
Some other Articles
Like a bathroom company with no plumbers
Should hotel staff sit on the toilet in the customer bedrooms?
Excellent Rail News - what it really means
The Kernel, Shells and Daemons. Greek Gods in computing
Solution looking for a problem? Lookahead and Lookbehind
More than just matching with a regular expression in PHP
Getting more than a yes / no answer from a regular expression pattern match
Melksham Pride - the Chamber of Commerce, and the future
Improving Wiltshire Rail Offer - it WILL be happening
4750 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95 at 50 posts per page

This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2017: 404 The Spa • Melksham, Wiltshire • United Kingdom • SN12 6QL
PH: 01144 1225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/3791_The ... uting.html • PAGE BUILT: Sat May 27 16:49:10 2017 • BUILD SYSTEM: WomanWithCat