Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I want to know that what are differences in behavior of a daemon, process and service running in ubuntu desktop.

share|improve this question

closed as off topic by Anwar Shah, Tom Brossman, hbdgaf, John S Gruber, Ringtail Sep 23 '12 at 21:57

Questions on Ask Ubuntu are expected to relate to Ubuntu within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

3  
This is a better fit for StackOverflow, where it has conveniently already been asked and answered. –  Tom Brossman Sep 23 '12 at 16:38

2 Answers 2

up vote 36 down vote accepted

Daemons - Daemon does not stand for Disk and Execution Monitor (http://www.takeourword.com/TOW146/page4.html). They are the processes which run in the background and are not interactive. They have no controlling terminal.

They perform certain actions at predefined times or in response to certain events. In *NIX, the names of daemons end in d.

Services - In Windows, daemons are called services.

If you're wondering why *NIX has a command named service, it is just used to run init scripts (shorthand for initialization scriptrunlevel).

Process - Process is a running program. At a particular instant of time, it can be either running, sleeping, or zombie (completed process, but waiting for it's parent process to pick up the return value).

Sources and further information:

share|improve this answer
1  
Processes have a few more states on Linux, here's an excellent diagram: linux-tutorial.info/modules.php?name=MContent&pageid=84 –  Dietrich Epp Sep 23 '12 at 14:42

A daemon is a background, non-interactive program. It is detached from the keyboard and display of any interactive user. The word daemon for denoting a background program is from the Unix culture; it is not universal.

A server is a program which responds to requests from other programs over some inter-process communication mechanism (usually over a network). A service is what a server provides. For example, the NFS port mapping service is provided as a separate portmap server, which is implemented as the portmapd daemon.

A server doesn't have to be a daemon, but usually is. A user application with a GUI could have a server built into it: for instance, a file-sharing application. Another example is the X Window server, which is anything but in the background: it takes over your screen, keyboard and pointing device. It is a server because it responds to requests from applications (to create and manipulate windows, et cetera), which can even be elsewhere on the network. But the X server also responds to your every keystroke and mouse movement.

A process is one or more threads of execution together with their shared set of resources, the most important of which are the address space and open file descriptors. A process creates an environment for these threads of execution which looks like they have an entire machine all to themselves: it is a virtual machine. Inside a process, the resources of other processes, and of the kernel, are invisible and not directly accessible (at least not to a thread which is executing user-space code). For example, there is no way to refer to the open files of another process, or their memory space; it is as if those things do not even exist. The process, and its relation to the kernel and other processes, perhaps constitutes the most important abstraction in Unix-like operating systems. The resources of the system are compartmentalized into processes, and nearly everything is understood as happening inside one process or another.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.