2010-07-28 2 views
1

Я написал демон в linux для выполнения dhcp для встроенной системы. На этой платформе работает только Linux-сервер и не поддерживает CLI. Каков наилучший способ проверить моего демона? Как написать программу, которая будет вызывать основную функцию в этом демоне и проверить, работает ли она нормально?Тестирование Linux-демона во встроенной системе

Цените ответы.

+0

Даже не занят? –

+1

@Ignacio Это не совсем неслыханно (ну, по крайней мере, я тоже это сделал), чтобы иметь встроенную систему, которая полагается на ядро ​​Linux, glibc или ulibc и другие связанные библиотеки, но не имеет оболочки на нем вообще. У меня даже не было стандартного init - мы сами писали. Однако мы использовали другие утилиты по мере необходимости, а не писали наши собственные. В этой ситуации, например, мы использовали бы существующий dhcpcd. –

ответ

4

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

В этом случае все, что вам действительно интересно, вызывает функцию по требованию, поэтому вы можете даже активировать ее при подключении к этому второму порту и затем сообщать результаты обратно в сокет.

Я настоятельно рекомендую, кстати, убедиться, что ваша встроенная система имеет еще один общий механизм для записи информации в постоянное хранилище и получения этого журнала. Это не должно быть syslog или что-то настолько сложное. Но вы захотите, чтобы эта способность в будущем позволила провести судебный анализ проблем в этой области.

+1

Спасибо за этот ответ. Мне понравилась идея второго слушателя. Я постараюсь, чтобы второй слушатель отвечал на основные команды с определенного порта, а затем получал результаты через это. – Ullas

+0

+1 для рекомендации механизма каротажа. – semaj

+0

Аминь к регистрации! Учитывая, что у вас уже запущен IP-стек, реализация протокола syslog для экспорта записей журнала не очень сложна. – bstpierre

0

Сначала вы захотите сначала записать и отладить ваш демон в полноценной среде, а затем установить его на встроенную систему в конце, когда вы уверены, что он работает правильно.

Если вы можете построить сервер dhcp для встроенной системы, вы также можете создать для него простую оболочку. Попробуйте построить BusyBox или золу или тире.

Вы также можете попробовать использовать удаленную отладку GDB. I found an article об этом.

+0

Честно говоря, я действительно не пытаюсь отладить мой демон (я знаю, что он работает на общей платформе). Я хотел бы знать, как это работает на этой конкретной платформе, и именно поэтому важно иметь контроль над этим демоном в системе, чтобы я мог протестировать другие сетевые коммуникации аппаратного обеспечения. Однако оцените предложение. Да, в какой-то момент я пойду и напишу для нее оболочку, но посмотрел на некоторые более простые методы для быстрого теста. – Ullas

+0

Вам вряд ли нужно * писать * оболочку. Есть буквально сотни, уже написанных на выбор! –

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