Я читал об apport и его использовании уже неделю. Но не мог понять нижеприведенные вещи.
Сценарий:
Я разработал приложение и упаковал его. И его зовут MyApp.deb
. Имя двоичного пакета MyApp
. Приложение установлено в пути /opt/myapplication/bin/MyApp
.
Требование:
- Когда мое приложение падает, я хочу иметь возможность собирать дамп ядра.
- При каждом последующем сбое он должен создавать новый сбой, но не перезаписывать существующий. Мне может помочь что-то вроде автоматического переименования с отметкой текущего времени и т. Д.
- Когда я устанавливаю свое приложение на клиентском компьютере, мой установщик не должен изменять общесистемные параметры. Скажем, к примеру, я не должен изменять шаблон генерации его основного файла, потому что пользователь / клиент может ненавидеть мое приложение, поскольку я изменил бы его системные параметры без его согласия.
- Я в порядке с путем генерации файла ядра. Либо текущий каталог или
/var/crash
Вещи, которые я исследовал до сих пор:
Apport - хорошая утилита, которая позволяет генерировать основные файлы. Используя /proc/sys/kernel/core_pattern
я могу отформатировать основные файлы. Это обеспечивает гибкость для перенаправления файлов ядра в предопределенный каталог, именования файлов ядра с помощью pid, шаблона пути к файлу, добавленного или подготовленного к нему, и т. Д. Для пакетов, отличных от Ubuntu, я должен написать хуки для создания дампов ядра (отчетов) , Apport после сбора отчета будет загружен.
Вещи, которые я не понимаю
- Я должен смотреть на Apport ?? Я имею в виду, достаточно ли моей цели? Или я должен смотреть на что-то еще?
- К какой упаковке относится мое приложение? Я называю это не Ubuntu? 3-я часть? что это? Я вижу разные термины в документах?
- Как я уже говорил,
MyApp
запускается/opt/myapplication/bin/MyApp
, так где будут генерироваться файлы ядра? Текущий реж или/var/crash
? Обнаруживает ли Apport сбои, вызванные/opt
? Это интерпретирует это? - Важный вопрос: если я разработал приложение и если Apport загрузит отчет в репозитории Ubuntu, это не имеет смысла. Так как я могу сказать Apport, чтобы отправить мне отчет.
- Я получаю эту ошибку:
executable does not belong to a package, ignoring
. Так что я делаю не так? - Чтобы приложение распознало мой пакет, нужно ли мне сделать его исходным пакетом? Это обязательно? Я просто хочу создать бинарный пакет?
- Я также видел где-то в документах, которые распознает Apport:
- Пакеты Ubuntu или
- Приложения панели запуска, но мое приложение не относится ни к одному из них. Так как же Apport помогает мне в текущем сценарии?
Одно из ограничений Apport прямо сейчас - это должен быть пакет в репозитории Ubuntu или, по крайней мере, проект на Launchpad. Последний вариант для вас?
—
Джокердино
Спасибо за своевременный ответ и четкий ответ на мой длинный вопрос. Кстати, я упустил упомянуть в моем предыдущем посте, что мое приложение является собственностью. Мы планируем разместить наше приложение в репозиториях Ubuntu. Но это может быть через несколько месяцев. До этого я должен управлять основными файлами вручную.
—
Сандип
На каком языке написано приложение? Также ознакомьтесь с классом для написания хуков пакетов Apport .
—
Джокердино
Приложение написано на C ++. Следующие строки из ссылки оставляют меня в замешательстве: "<openweek4> ВОПРОС: будут ли перехватчики приложений работать со сторонними приложениями? Openweek4: Я действительно не уверен в этом вопросе. Если вы посмотрите на перехват ubuntuone-client - об ошибках сообщают на Launchpad, но о проекте Ubuntuone. Так что это вполне может быть возможным. Тем не менее, apport должен иметь возможность общаться с соответствующей системой отслеживания ошибок ».
—
Сандип
Автор говорит, что сторонние приложения могут использовать apport для получения отчетов, если между приложением и системой отслеживания ошибок приложений 3-го paty установлена связь. Как этого достичь? Если это может быть достигнуто, тогда мне не нужно ждать, пока мое приложение будет зарегистрировано в Ubuntu Repo или launchpad.
—
Сандип