Як системні сервіси працюють в оснащенні


9

При створенні оснащення, а також в відповідності з синтаксисом файлу snapcraft.yaml , то daemonключове слово може бути додано , щоб вказати , що додаток буде працювати в якості системної служби. Як приклад такої декларації:

apps:
  tinyproxy:
    command: ./launcher.sh
    daemon: simple
    plugs: [network,network-bind]

Однак що саме означає бути системною службою в оснащенні? Тобто, який у них життєвий цикл (запуск, перезапуск, зупинка ...)? Можу чи я контролювати їх працює в системі зі звичайними інструментами ( ps, topі т.д.)?

Відповіді:


8

З https://developer.ubuntu.com/en/snappy/build-apps/debug/

Тестування послуги

Щоб перевірити послугу, її потрібно встановити спочатку. Після його встановлення systemctlкоманду systemd можна використовувати, щоб побачити, чи запускається та працює програма, як очікувалося, наприклад:

systemctl status snap.<name>.<appname>

Пошук журналів

journalctlКоманда може бути використана для перевірки повідомлень про те , що служба відправляє в stdout/ stderr, наприклад:

journalctl -u snap.<name>.<appname>

Служби можуть записувати додаткові дані до syslog ( /var/log/syslog) або до спеціальних каталогів журналу. Зауважте, що користувацькі каталоги журналів повинні знаходитись на шляху, до якого служба може записувати (як правило SNAP_DATA).

Отримання основного дампа

Щоб увімкнути основні дампи, вам потрібно налаштувати місце для запису в них через sysfs. Наприклад, ви можете використовувати

$ echo "/tmp/core.%e.%p" > /proc/sys/kernel/core_pattern

щоб ваш coredumps записувався в /tmpкаталог незалежно від того, де CWDбув процес, який отримав сигнал.


Дякую! Крім того, я отримав підказку, що простий спосіб налагодження проблем із сервісом, який не починається, - тимчасово відмежувати daemon: simpleлінію, щоб вона поводилася як звичайний додаток, а потім вручну запустити послугу "підтверджений" якsudo /snap/bin/<servicename>
Девід Планелла

чи можна перенаправляти журнали на спеціальний файл замість журналу?
Анкур Бхатія
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.