Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm writing a simple daemon application using C/C++ and I want it to start when Linux starts up.

I am a beginner on Linux systems.

I have tried to modify /etc/init.d/skeleton to add a script into the init.d directory as follows

  1. added my daemon application in /usr/sbin/ directory and changed NAME=myDaemon

  2. write update-rc.d myDaemon default in Terminal

  3. and it added symbolic links to rc#.d directories

But it didn't work.

My second try was to modify rc.local as

/usr/sbin/myDaemon start 

But this didn't work either.

How can I make my daemon start with the OS? I want to do everything programmatically.

I use Ubuntu 10.10 but if there exists a general solution for all distributions, that would be great!

share|improve this question

migrated from stackoverflow.com Jan 22 '12 at 14:31

This question came from our site for professional and enthusiast programmers.

You don't modify the /etc/init.d/skeleton file. You copy it to a new file /etc/init.d/mamoudservice (replace mamoudservice with a more suitable name) and then you edit that new file appropriately.

Then you add a symlink from /etc/rc2.d/S99mamoudservice to /etc/init.d/mamoudservice etc.

Use e.g.

   /bin/bash -vx /etc/init.d/mamoudservice start

to understand how the bash shell is interpreting your script.

If your daemon program /usr/sbin/mamouddaemon is coded in C or in C++, I suggest using openlog and syslog inside, at least to get debugging messages (don't output to stderr or stdout in a deamon, it could go nowhere).

An alternative to having your /etc/init.d/mamoudservice script might be to put a @reboot entry in your crontab

share|improve this answer
how can i modify it excuse me as i told you i just take my first steps on Linux World – Ma7moud El-Naggar Jan 22 '12 at 9:01
try emacs (or vi, no flame war!) – alexhairyman Jan 22 '12 at 9:18
i don't ask about what text editor i use but what section/Variable in this file to change – Ma7moud El-Naggar Jan 22 '12 at 9:24
Oh, can't help you there. There are so many ways to solve a problem in linux, it's great. BTW, welcome to linux! (CopyRight free!) – alexhairyman Jan 22 '12 at 9:30
Ok. Your real question is how to debug your /etc/init.d/mamoudservice script. Try to run /bin/bash -vx /etc/init.d/mamondservice start and you'll understand what is happening. On a more general note, learn more about your operating system before adding services to it. We cannot help more because we have no idea of how your /usr/sbin/mamouddaemon operate, and which program options it is accepting. – Basile Starynkevitch Jan 22 '12 at 9:49

Try chkconfig with the name of your service and then "on." This must be run as root.

share|improve this answer
i don't want to use GUI App or Terminal if i want so i can use Startup Application Application on Ubuntu – Ma7moud El-Naggar Jan 22 '12 at 8:58
chkconfig modifies a file so that the indicated service is automatically started the next time you turn your computer on. Trust me, after setting up a CentOS server cluster, this is how you do it. – alexhairyman Jan 22 '12 at 9:15
@Ma7moud El-Naggar: chkconfig creates various symlinks in /etc/rc\d.d/ for you. – J.F. Sebastian Jan 22 '12 at 10:36
i have already symlinks on rc#.d directories – Ma7moud El-Naggar Jan 22 '12 at 10:54

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.