2014-11-15 3 views
0

Я написал программу на C++, которая работает на малине Pi и прослушивает встроенный последовательный порт (в цикле) для информации из сенсорной сети. У меня есть настроить. Я хочу, чтобы это программное обеспечение запускалось при загрузке pi, поэтому для этой цели я написал сценарий инициализации. Сценарий успешно запускает процесс, поскольку получает данные записываются в моей базе данных, но всякий раз, когда я использую «сервис запуска sensorlogger», я получаю это:Запуск программы на C++ в качестве службы с использованием init.d

[....] Starting the process: sensorlogger 

который просто сидит на моей командной строки, пока я не^C, чтобы положить конец программа.

  • Почему, несмотря на то, что процесс работает, я не верну свой терминал и что я могу изучить, чтобы исправить его?
  • Будет ли это препятствовать запуску моего процесса при загрузке pi или предотвращении его запуска других сервисов?

У меня есть отрывок из моего initscript ниже. При необходимости я могу включить весь скрипт. Заранее спасибо за любую помощь, которую я могу получить!

test -x $DAEMON || exit 5 
case $1 in 
start) 
    # Checked the PID file exists and check the actual status of process 
    if [ -e $PIDFILE ]; then 
    status_of_proc -p $PIDFILE $DAEMON "$NAME process" && status="0" || status="$?" 
    # If the status is SUCCESS then don't need to start again. 
    if [ $status = "0" ]; then 
    exit # Exit 
    fi 
fi 
# Start the daemon. 
log_daemon_msg "Starting the process" "$NAME" 
# Start the daemon with the help of start-stop-daemon 
# Log the message appropriately 
if start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON ; then 
log_end_msg 0 
else 
log_end_msg 1 
fi 
;; 
+0

Что такое start-stop-daemon --start --quiet --oknodo --exec/path/to/progam alone do? – Oncaphillis

+0

Сама по себе команда вызывает ошибку seg. Если я запустил его как root с sudo, то он все еще просто удерживает мою командную строку. – IanM

+0

В этом случае я бы действительно заглянул в свою серверную программу, если start-stop-daemon так ужасно умирает. – Oncaphillis

ответ

1

попробуйте добавить опцию -b

старт-стоп-демон --start --quiet -b --oknodo --pidfile $ PIDFILE --exec $ DAEMON;

+0

Проблема была раскрыта этим флагом: я не разворачивался и не возвращался в свой процесс, из-за чего он удерживал мою оболочку. Благодаря! – IanM