Cómo funcionan los servicios del sistema en instantáneas

9

Al crear un complemento, y de acuerdo con la sintaxis del archivo snapcraft.yaml , la daemonpalabra clave se puede agregar para especificar que la aplicación se ejecutará como un servicio del sistema. Como ejemplo de tal declaración:

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

Sin embargo, ¿qué significa exactamente ser un servicio del sistema en un instante? Es decir, ¿cuál es su ciclo de vida (iniciar, reiniciar, detener ...)? Puedo monitorear ellos corriendo en el sistema con las herramientas habituales ( ps, top, etc.)?

David Planella
fuente

Respuestas:

8

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

Probar un servicio

Para probar un servicio, primero debe instalarse. Una vez instalado, el systemctlcomando de systemd se puede usar para ver si el servicio se inicia y se ejecuta como se esperaba, por ejemplo:

systemctl status snap.<name>.<appname>

Encontrar los registros

El journalctlcomando se puede usar para inspeccionar los mensajes que el servicio envía a stdout/ stderr, por ejemplo:

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

Los servicios pueden registrar datos adicionales en syslog ( /var/log/syslog) o en directorios de registro personalizados. Tenga en cuenta que los directorios de registro personalizados deben estar en una ruta en la que el servicio pueda escribir (generalmente SNAP_DATA).

Conseguir un volcado de núcleo

Para habilitar los volcados de núcleo, debe configurar un lugar para escribirlos a través de sysfs. Por ejemplo, puedes usar

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

para asegurarse de que sus coredumps se escriban en el /tmpdirectorio, independientemente del lugar CWDdel proceso que recibió una señal.

dholbach
fuente
¡Gracias! Además, recibí una sugerencia de que una manera fácil de depurar problemas con un servicio que no se inicia es descomentar temporalmente la daemon: simplelínea para que se comporte como una aplicación normal y luego iniciar manualmente el servicio "aplicado" comosudo /snap/bin/<servicename>
David Planella
¿Es posible redirigir los registros a un archivo personalizado en lugar de un diario?
Ankur Bhatia