Comment fonctionnent les services système dans les snaps

9

Lors de la création d'un snap, et selon la syntaxe du fichier snapcraft.yaml , le daemonmot - clé peut être ajouté pour spécifier que l'application sera exécutée en tant que service système. À titre d'exemple d'une telle déclaration:

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

Cependant, que signifie exactement être un service système en un clin d'œil? Autrement dit, quel est leur cycle de vie (démarrage, redémarrage, arrêt ...)? Puis - je les suivre en cours d' exécution dans le système avec les outils habituels ( ps, top, etc.)?

David Planella
la source

Réponses:

8

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

Tester un service

Pour tester un service, il doit d'abord être installé. Une fois installée, la systemctlcommande de systemd peut être utilisée pour voir si le service démarre et s'exécute comme prévu, par exemple:

systemctl status snap.<name>.<appname>

Trouver les journaux

La journalctlcommande peut être utilisée pour inspecter les messages que le service envoie à stdout/ stderr, par exemple:

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

Les services peuvent enregistrer des données supplémentaires dans syslog ( /var/log/syslog) ou dans des répertoires de journaux personnalisés. Notez que les répertoires de journaux personnalisés doivent se trouver dans un chemin sur lequel le service peut écrire (généralement SNAP_DATA).

Obtenir un vidage de mémoire

Pour activer les vidages mémoire, vous devez configurer un emplacement pour les écrire via sysfs. Par exemple, vous pouvez utiliser

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

pour vous assurer que vos coredumps sont écrits dans le /tmprépertoire quel que soit CWDle processus qui a reçu un signal.

dholbach
la source
Merci! De plus, j'ai reçu un conseil selon lequel un moyen facile de déboguer les problèmes avec un service qui ne démarre pas est de décommenter temporairement la daemon: simpleligne pour qu'elle se comporte comme une application régulière, puis de démarrer manuellement le service "appliqué" en tant quesudo /snap/bin/<servicename>
David Planella
est-il possible de rediriger les journaux vers un fichier personnalisé au lieu du journal?
Ankur Bhatia