Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

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.

2 Answers 2

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
1  
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

 
discard

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