Como os serviços do sistema funcionam nos snaps


9

Ao criar um snap, e de acordo com a sintaxe do arquivo snapcraft.yaml , a daemonpalavra - chave pode ser adicionada para especificar que o aplicativo será executado como um serviço do sistema. Como exemplo dessa declaração:

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

No entanto, o que significa exatamente ser um serviço do sistema em um piscar de olhos? Ou seja, qual é o ciclo de vida deles (iniciar, reiniciar, parar ...)? Posso monitorá-los em execução no sistema com as ferramentas habituais ( ps, top, etc)?

Respostas:


8

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

Testando um serviço

Para testar um serviço, ele deve ser instalado primeiro. Depois de instalado, o systemctlcomando do systemd pode ser usado para verificar se o serviço é iniciado e executado conforme o esperado, por exemplo:

systemctl status snap.<name>.<appname>

Localizando os logs

O journalctlcomando pode ser usado para inspecionar as mensagens que o serviço envia para stdout/ stderr, por exemplo:

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

Os serviços podem registrar dados adicionais em syslog ( /var/log/syslog) ou em diretórios de log personalizados. Observe que os diretórios de log personalizados devem estar em um caminho no qual o serviço possa gravar (normalmente SNAP_DATA).

Obtendo um Core Dump

Para habilitar os dumps principais, você precisa configurar um local para gravá-los através do sysfs. Por exemplo, você pode usar

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

para garantir que seus coredumps sejam gravados no /tmpdiretório, independentemente de onde foi CWDo processo que recebeu um sinal.


Obrigado! Além disso, eu tenho uma dica que uma maneira fácil de depurar problemas com um serviço não iniciar é temporariamente remova o comentário da daemon: simplelinha para torná-lo comportar-se como um aplicativo regular, e, em seguida, iniciar manualmente o serviço "appified" comosudo /snap/bin/<servicename>
David Planella

é possível redirecionar os logs para um arquivo personalizado em vez de diário?
Ankur Bhatia
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.