Eigenes Projekt im System (service) verfügbar machen?

  • Hallo alle miteinander,


    ich hoffe erstmal, dass ich mit meiner Frage in diesem Unterordner richtig bin.


    Zurzeit entwickel ich ein C-Programm für den Raspberry Pi mit Jessie als OS. Das Programm wird mittels Cross-Compile auf den Raspberry geladen und dadurch bekomme ich dann eine ausführbare .out Datei. Meine Frage ist jetzt, wie ich mein Programm systemweit verfügbar machen kann wie es z.B. bei apache der Fall ist???

    Bisher habe ich ein Skript in /etc/init.d erstellt, allerdings funktioniert das nicht so wirklich...

    Ich habe dafür das Besipiel hier verwendet und ein wenig angepasst.

    Kann es vielleicht sein, dass ich aus meinem Programm noch ein Daemon oder so machen muss???


    Es wäre echt super wenn mir einer helfen könnte!


    MfG

  • Bisher habe ich ein Skript in /etc/init.d erstellt, allerdings funktioniert das nicht so wirklich...

    Wie sind die Ausgaben von:

    Code
    file /home/pi/projects/can_converter/bin/ARM/Debug/can_converter.out
    ldd /home/pi/projects/can_converter/bin/ARM/Debug/can_converter.out

    ?

    The most popular websites without IPv6 in Germany.

  • Code
    file /home/pi/projects/can_converter/bin/ARM/Debug/can_converter.out
    /home/pi/projects/can_converter/bin/ARM/Debug/can_converter.out: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.32, BuildID[sha1]=b8801af334a7b946b3a0605e0041f392fe0b49e3, not stripped


  • Bisher habe ich ein Skript in /etc/init.d erstellt, allerdings funktioniert das nicht so wirklich...

    Mit z. B.:

    Code
    sudo sh -x /etc/init.d/<dein-Start-Stop-Script>

    (ohne spitze Klammern und mit dem richtigen Namen), kannst Du sehen wie dein Script zeilenweise ausgeführt (... oder nicht (komplett) ausgeführt) wird.

    The most popular websites without IPv6 in Germany.

  • Ich habe noch nicht ganz verstanden, was Du eigentlich erreichen willst. Du schreibst "systemweit verfügbar machen", Dein Post klingt aber eher so, als meintest Du "automatisch bei jedem Systemstart starten".

    Falls tatsächlich letzteres gemeint ist: Der zukunftsträchtigere Weg ist über eine systemd service unit, nicht über ein BSD-init-Skript.


    Ansonsten ist in Deinem Skript der "." am Anfang von SCRIPT falsch.

  • Der zukunftsträchtigere Weg ist über eine systemd service unit, nicht über ein BSD-init-Skript.

    BTW: Ja, aber es ist ja nicht falsch wenn man mal ein _funktionierendes_ BSD-init-Script hat, dem systemd-sysv-generator über die Schulter zu schauen. Mit den Infos kann man dann seine eigene systemd service unit erstellen.

    The most popular websites without IPv6 in Germany.

  • Vielen Dank für eure Hilfe!

    Ich habe es jetzt auch hinbekommen. Habe jetzt zum größte Teil das Besipiel hier verwendet...


  • Ich habe es jetzt auch hinbekommen.

    Versuch mal ohne sudo, in deinem Start-Stop-Script, denn dieses wird ja schon mit root-Rechten ausgeführt.


    BTW: Dein binary kannst auch noch strippen, dann ist es kleiner.

    The most popular websites without IPv6 in Germany.