GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Daemon mit Linux starten lassen?

Ich schreibe eine einfache Daemon-Anwendung mit C/C++ und möchte, dass sie beim Start von Linux gestartet wird.

Ich habe versucht, /etc/init.d/skeleton zu ändern wie folgt ein Skript in das Verzeichnis init.d einzufügen

  1. meine Daemon-Anwendung in /usr/sbin/ hinzugefügt Verzeichnis und NAME=myDaemon geändert

  2. schreiben Sie update-rc.d myDaemon default im Terminal

  3. und es fügte symbolische Links zu rc#.d hinzu Verzeichnisse

Aber es hat nicht funktioniert.

Mein zweiter Versuch war, rc.local zu modifizieren als

/usr/sbin/myDaemon start 

Aber auch das hat nicht funktioniert.

Wie kann ich meinen Daemon dazu bringen, mit dem Betriebssystem zu starten? Ich möchte alles programmgesteuert erledigen.

Ich verwende Ubuntu 10.10, aber wenn es eine allgemeine Lösung für alle Distributionen gäbe, wäre das großartig!

Akzeptierte Antwort:

Sie ändern nichts /etc/init.d/skeleton Datei. Sie kopieren es in eine neue Datei /etc/init.d/mamoudservice (ersetzen Sie mamoudservice mit einem passenderen Namen) und dann bearbeiten diese neue Datei entsprechend.

Dann fügen Sie einen Symlink von /etc/rc2.d/S99mamoudservice hinzu nach /etc/init.d/mamoudservice usw.

Verwenden Sie z. B.

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

um zu verstehen, wie die bash Shell interpretiert Ihr Skript.

Wenn Ihr Daemon-Programm /usr/sbin/mamouddaemon in C oder in C++ kodiert ist, empfehle ich die Verwendung von openlog und syslog innen, zumindest um Debugging-Meldungen zu erhalten (nicht an stderr ausgeben oder stdout in einem Daemon könnte es nirgendwo hingehen).

Eine Alternative zu Ihrem /etc/init.d/mamoudservice Skript könnte darin bestehen, ein @reboot einzufügen Eintrag in Ihrem crontab


Linux
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. Linux – Sudo kann /etc/sudoers nicht öffnen?

  3. Linux – So deaktivieren Sie Strg-Alt-Entf und /etc/init/control-alt-del.conf in Linux?

  4. Beispieldatei /etc/services unter Linux

  5. Wo kann ich Dienststartoptionen in Ubuntu konfigurieren?

Linux-make-Befehl mit Beispielen erklärt

Der richtige Weg zum Bearbeiten von /etc/passwd- und /etc/group-Dateien unter Linux

Linux-Konfiguration:Verstehen von *.d-Verzeichnissen in /etc

Linux – /sbin/init existiert nicht?

Was ist die Datei /etc/passwd unter Linux?

Linux-make-Befehl mit Beispielen