2016-04-11 3 views
0

Я работаю над проектом на Raspberry Pi Model 2+ с использованием Raspbian Debian Jessie и это моя проблема:/Выполнение программы при загрузке в Linux в терминале

Так у меня есть программа (написанная на C++) что я запускаю с использованием сценария оболочки (сценарий оболочки в основном перезапускает мою программу всякий раз, когда он сбой, это невозможно решить, поскольку он будет терпеть неудачу один раз из-за аппаратного обеспечения, которое я использую ***)

Я смотрел на google для ответов о том, как запустить программу при загрузке, и увидел, что я могу поместить все в RC.local как скрипт @/etc/RC.local. Так что теперь у меня есть это:.

sudo /home/pi/Morreels/launcher 

в rc.local, это запускает процесс, так как я могу убить его с помощью killall launcher после входа в К сожалению, мне нужна эта программа для вывода на терминал, так что это, где я я застрял, я видел, как люди запускали терминал, а затем повторяли коды запуска программы внутри терминала, но разве это не грязное решение?

Я чувствую, что в конце моей команды должна быть какая-то опция, такая как -lx, чтобы она выводилась в терминал, нет?

К сожалению, об этом я, кажется, не найти ничего, и если я должен использовать упомянутый выше грязный исправить, я хотел бы некоторую помощь, так как я не кажется, получить, чтобы работать ...

ответ

1

Почему вам нужен вывод в терминале? Когда запускаются rc-скрипты, просто нет терминала для перенаправления вывода.

Возможно, файл журнала может помочь вам здесь? Перенаправить вывод на /var/log/morreels_launcher.log например, а затем проверить этот файл вместо терминала?

PS: В rc-скриптах sudo не требуется.

+0

Результат показывает, что неправильно, вы видите, что когда одно из подключенных устройств выходит из строя, или что-то в этом роде, моя программа продолжает пытаться подключиться, и поэтому мне нужно выяснить, какое устройство терпит неудачу, поэтому я могу исправить это устройство, не вдаваясь в журналы малины, чтобы увидеть ошибки. –

+1

Тогда возможно перенаправление в файл журнала '/ var/log/morreels_launcher.log' и при входе в' tail -f/var/log/morreels_launcher.log' в новом терминале может предоставить это. –

+0

Это означало бы, что в моей (к настоящему времени) более 1200 строк большой программы мне нужно было бы отредактировать каждый cout, printd, perror и так далее? в том числе в плагинах? Just ask ^^ –

0

Если вы имеете в виду текстовый терминал: launcher > /dev/console (или &> console, а также redirect stderr). Если вы имеете в виду терминал X11, это зависит от оконного менеджера. Для gnome в главном меню есть графический интерфейс, который вы можете использовать для настройки приложений запуска X11.

+0

Я попробую это :) –

+0

Так что я пробовал это, но грустно, когда я ввожу это за строкой кода rc.local, это больше не работает, процесс не запускается и нет терминала Я проверил, попробовав 'killall launcher' –

Смежные вопросы