raspberry pi3 — системный вызов C ++ для другой программы на C ++ не работает при вызове при запуске

У меня есть программа на C ++, которая вызывается при запуске через cronjob (в crontab):

@reboot sudo /home/pi/CAN/RCR_datalogging/logfileControl

Который запускает logfileControl каждый раз, когда загружается Pi, как показано в списке запущенных программ (ps -e). LogfileControl содержит два системных вызова программ на C ++, связанных с SocketCAN (SocketCAN является частью ядра Linux, он позволяет работать с данными CAN в качестве сетевых сокетов). Я хочу, чтобы logfileControl запускался при запуске, чтобы он мог инициализировать сокет CAN (системный вызов 1), а затем запустить первый файл журнала (systemcall 2, CandumpExternal, это Candump из socketCAN с незначительной модификацией, чтобы сделать файл журнала в определенном месте, а не просто где Candump, но с использованием оригинальной версии была та же проблема). Первый системный вызов, кажется, работает должным образом, как будто я пытаюсь инициализировать сокет снова, он занят, но второй системный вызов, кажется, не происходит, поскольку файл журнала вообще не создается, поскольку файл журнала не создается. Если я вручную запускаю logfileControl из командной строки, он работает как положено и создает лог-файл, который оставил меня в замешательстве …

У кого-нибудь есть понимание того, что здесь происходит?

system("sudo /sbin/ip link set can0 up type can bitrate 500000");
// This is ran initially as logging should start as soon as the pi is on
system("/home/pi/CAN/RCR_datalogging/candumpExternal can0 -l -s 0"); // candump with the option to log(-l) as well as
// continue to output to console (-s 0)

std::cout <<"Setup Complete" << std:: endl;

while(true) { //sleeping indefinitely so that the program can stay open and wait for button presses
sleep(60);
}

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

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]