Я написал программу на 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
;;
Что такое start-stop-daemon --start --quiet --oknodo --exec/path/to/progam alone do? – Oncaphillis
Сама по себе команда вызывает ошибку seg. Если я запустил его как root с sudo, то он все еще просто удерживает мою командную строку. – IanM
В этом случае я бы действительно заглянул в свою серверную программу, если start-stop-daemon так ужасно умирает. – Oncaphillis