C-Programm im Hintergrund starten

C-Programm im Hintergrund starten

Ich möchte ein C-Programm im Hintergrund vom Terminal aus starten. Das Programm fungiert als Bluetooth-Treiber, was bedeutet, dass es geöffnet bleiben muss, während das System läuft. Ich habe es mit nohup und start-stop-daemon versucht, aber in beiden Fällen erhält das C-Programm den Exit-Befehl und wird geschlossen.

Wie kann ich ein C-Programm von einem Terminal aus starten, das dann im Hintergrund läuft? Ich möchte es starten und dann das Terminal auf der GUI schließen können (während das gestartete C-Programm munter weiterläuft).

Danke!

Antwort1

Scheint, als bräuchte das Programm zum Ausführen ein Steuerterminal (das können Sie herausfinden, stracewenn Sie den Quellcode nicht haben).

Sie können dem Programm ein Steuerterminal zur Verfügung stellen (auch wenn Sie es als Teil des Systemstarts starten), indem Sie es über screen(ot tmux) ausführen.

screen cmd arg1 arg2

Antwort2

Ich denke, um ein Programm vollständig zu dämonisieren, müssten Sie

nohup the_command args ... </dev/null >/dev/null 2>/dev/null &
disown

Abhängig von Ihrem System sollten Sie in Erwägung ziehen, es beim Systemstart mit „upstart“ oder „init“ oder etwas Ähnlichem zu starten.

verwandte Informationen