2016-04-11 4 views
0

ich an einem Projekt auf einem Himbeer-Pi Modell arbeitete 2+ mit Raspbian Debian jessie und das ist mein Problem:/Führen Sie ein Programm auf Boot in Linux in Terminal

Ich habe so ein Programm (geschrieben in C++) Ich starte mit einem Shell-Skript (das Shell-Skript startet mein Programm grundsätzlich jedes Mal, wenn es abstürzt, dies ist nicht löschbar, da es aufgrund der Hardware, die ich benutze, immer wieder fehlschlägt)

Ich schaute auf google nach Antworten auf, wie man ein Programm beim Aufsteigen startet und sah, dass ich alles in RC.local als Skript @/etc/RC.local setzen kann. So, jetzt Ich habe dies:.

sudo /home/pi/Morreels/launcher 

in rc.local, dies den Prozess startet, da ich es killall launcher mit töten kann nach angemeldet werden Leider muss ich dieses Programm zur Ausgabe an das Terminal so das ist, wo i Ich stecke fest, ich habe Leute gesehen, die das Terminal starten und dann die Laufcodes für das Programm innerhalb des Terminals wiedergeben, aber ist das nicht eine schmutzige Lösung?

Ich glaube, es sollte eine Art Option wie -lx am Ende meines Befehls geben, damit es in das Terminal ausgegeben wird, nein?

Leider darüber i scheinen nicht, etwas zu finden, und wenn ich die oben genannten schmutzigen fix verwenden sollten, würde ich etwas Hilfe lieben, da ich nicht scheinen, dass zu arbeiten ...

Antwort

1

Warum Brauchen Sie die Ausgabe in einem Terminal? Wenn die rc-Skripte ausgeführt werden, steht einfach kein Terminal zur Verfügung, um die Ausgabe umzuleiten.

Vielleicht könnte Ihnen hier ein Logfile helfen? Umleiten Sie die Ausgabe zum Beispiel /var/log/morreels_launcher.log und überprüfen Sie dann diese Datei anstelle des Terminals?

PS: Das sudo sollte in rc-Skripten nicht notwendig sein.

+0

Die Ausgabe zeigt mir, was falsch ist, sehen Sie, wenn eines der angeschlossenen Geräte ausfällt oder so etwas versucht mein Programm zu verbinden und so muss ich sehen, welches Gerät versagt, so dass ich dieses Gerät reparieren kann, ohne zu gehen die Protokolle der Himbeere, um Fehler zu sehen. –

+1

Dann vielleicht die Umleitung in eine Logdatei '/ var/log/morreels_launcher.log' und wenn in einem' tail -f/var/log/morreels_launcher.log' in einem neuen Terminal eingeloggt könnte dies bieten. –

+0

Das würde bedeuten, dass ich in meinem (mittlerweile) über 1200 Zeilen großen Programm jeden einzelnen Cout, Printd, Perror und so weiter bearbeiten müsste? inklusive in den Plugins? Frage nur ^^ –

0

Wenn Sie das Textterminal meinen: launcher > /dev/console (oder &> console um stderr auch umzuleiten). Wenn Sie ein X11-Terminal meinen, kommt es auf den Fenstermanager an. Für Gnome gibt es eine GUI im Hauptmenü, mit der Sie X11 Startup-Apps konfigurieren können.

+0

ich werde das versuchen :) –

+0

Also habe ich das aber leider versucht, wenn ich dies hinter die rc.local Codezeile eingebe, es funktioniert nicht mehr, der Prozess wird nicht gestartet und kein Terminal ich überprüft, indem Sie 'killall Launcher' –

Verwandte Themen