12

Is there a difference between a daemon and a service?

Or are they both basically an application that is resident in memory, and is bound to a specific port and listens/responds to requests?

Jonathan Leffler
  • 1,035
  • 11
  • 20
Blankman
  • 2,891
  • 10
  • 39
  • 68
  • For Mac, also see https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/Introduction.html – Pacerier Dec 24 '14 at 13:50

4 Answers4

13

daemons and services are one in the same.

However, neither have to be bound to a port. HALd is a daemon, that monitors plugged in hardware and mounts it properly. crond is a daemon that keeps the trains on time.

David Rickman
  • 3,320
  • 18
  • 16
  • so then they are usually bound to a port, or OS level events? – Blankman Apr 03 '10 at 14:29
  • 2
    @Blankman: a daemon has a job to do - you don't run one if it doesn't. It has to get inputs from somewhere; a common source is the network, but it could be elapsed time (cron) or the various peripheral connection buses (HALd) or ... – Jonathan Leffler Apr 03 '10 at 14:37
9

Daemons and Services are not the same.

A "Service" could refer to either a Daemon or a Service.

A daemon is a subset of services that always run in memory waiting to service a request.

A non-daemon service generally is handled by xinetd. xinetd listens for the request, then starts the required service to handle the request. After the request has been serviced the service is then stopped again.

Typical non-daemon services: rsync vsftpd

Typical daemonized services: MySQL Apache

Brian Tillman
  • 693
  • 3
  • 5
  • 1
    xinetd was created to serve other services to conserve resources, but doesn't make them non-daemons. your example of non-daemons includes a deaemon...vsftpd ends in d because it's convention (but not required) to name unix deamons with a d at the end to stand for Daemon....the vsftp-daemon :-) – Bart Silverstrim Apr 03 '10 at 20:06
  • Also see http://askubuntu.com/a/192142/344328 – Pacerier Dec 24 '14 at 13:54
  • Do you still use xinitd today? I guess xinitd makes more trouble than it does help (today). – guettli Aug 07 '19 at 13:50
3

Yes - daemons run on Unix-like boxes, and services run on Windows.

Once upon a decade ago, daemons kept going indefinitely and services didn't.

Once upon a couple of decades ago, daemons didn't keep going indefinitely either.

So, really, I meant No - there isn't a significant difference between services and daemons.

Note that 'cron' is a daemon; it is not bound to the network at all.

Jonathan Leffler
  • 1,035
  • 11
  • 20
1

Since all major linux distributions use systemd today, it is feasible to look up what systemd says about it:

from man systemd

systemd is a system and service manager for Linux operating systems.

...

Service units, which start and control daemons and the processes they consist of. For details, see systemd.service(5).

...

systemctl daemon-reexec (does restart systemd)

guettli
  • 3,591
  • 17
  • 72
  • 123