GNU/Linux >> Belajar Linux >  >> Linux

Linux – Membuat Daemon Memulai Dengan Linux?

Saya sedang menulis aplikasi daemon sederhana menggunakan C/C++ dan saya ingin memulainya saat Linux dijalankan.

Saya telah mencoba memodifikasi /etc/init.d/skeleton untuk menambahkan skrip ke direktori init.d sebagai berikut

  1. menambahkan aplikasi daemon saya di /usr/sbin/ direktori dan mengubah NAME=myDaemon

  2. tulis update-rc.d myDaemon default di Terminal

  3. dan itu menambahkan tautan simbolis ke rc#.d direktori

Tapi itu tidak berhasil.

Percobaan kedua saya adalah memodifikasi rc.local sebagai

/usr/sbin/myDaemon start 

Tapi ini juga tidak berhasil.

Bagaimana saya bisa membuat daemon saya mulai dengan OS? Saya ingin melakukan semuanya secara terprogram.

Saya menggunakan Ubuntu 10.10 tetapi jika ada solusi umum untuk semua distribusi, itu bagus!

Jawaban yang Diterima:

Anda tidak memodifikasi /etc/init.d/skeleton mengajukan. Anda menyalin ke file baru /etc/init.d/mamoudservice (ganti mamoudservice dengan nama yang lebih cocok) dan kemudian Anda mengedit file baru itu dengan tepat.

Kemudian Anda menambahkan symlink dari /etc/rc2.d/S99mamoudservice ke /etc/init.d/mamoudservice dll.

Gunakan mis.

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

untuk memahami bagaimana bash shell menafsirkan skrip Anda.

Jika program daemon Anda /usr/sbin/mamouddaemon dikodekan dalam C atau C++, saya sarankan menggunakan openlog dan syslog di dalam, setidaknya untuk mendapatkan pesan debug (jangan keluarkan ke stderr atau stdout dalam daemon, itu tidak bisa ke mana-mana).

Alternatif untuk memiliki /etc/init.d/mamoudservice skrip mungkin untuk menempatkan @reboot entri di crontab . Anda


Linux
  1. Pengantar file Linux /etc/fstab

  2. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  3. Linux – Sudo Tidak Dapat Membuka /etc/sudoers?

  1. Linux – Bagaimana Cara Menonaktifkan Ctrl-alt-del Dan /etc/init/control-alt-del.conf Di Linux?

  2. Contoh file /etc/services di Linux

  3. Di mana saya dapat mengonfigurasi opsi startup layanan di Ubuntu?

  1. Linux – Menggabungkan /usr/bin Dan /usr/sbin Ke /bin (gnu/linux)?

  2. Bagaimana /etc/motd Diperbarui?

  3. Apa hubungan antara direktori /etc/init.d dan /etc/rcX.d di Linux?