Come funzionano i servizi di sistema negli snap


9

Durante la creazione di uno snap e in base alla sintassi del file snapcraft.yaml , è daemonpossibile aggiungere la parola chiave per specificare che l'app verrà eseguita come servizio di sistema. Come esempio di tale dichiarazione:

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

Tuttavia, cosa significa esattamente essere un servizio di sistema in un attimo? Cioè, qual è il loro ciclo di vita (avvio, riavvio, arresto ...)? Posso monitorarle in esecuzione nel sistema con gli strumenti abituali ( ps, top, ecc)?

Risposte:


8

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

Test di un servizio

Per testare un servizio, è necessario installarlo prima. Una volta installato, il systemctlcomando di systemd può essere utilizzato per vedere se il servizio viene avviato ed eseguito come previsto, ad esempio:

systemctl status snap.<name>.<appname>

Trovare i registri

Il journalctlcomando può essere utilizzato per ispezionare i messaggi che il servizio invia a stdout/ stderr, ad esempio:

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

I servizi possono registrare dati aggiuntivi su syslog ( /var/log/syslog) o su directory di registro personalizzate. Si noti che le directory di registro personalizzate devono trovarsi in un percorso in cui il servizio può scrivere (in genere SNAP_DATA).

Ottenere una discarica principale

Per abilitare i core dump devi configurare un posto dove scriverli tramite sysfs. Ad esempio puoi usare

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

per garantire che i coredump vengano scritti nella /tmpdirectory indipendentemente da dove si trovasse CWDil processo che ha ricevuto un segnale.


Grazie! Inoltre, ho ricevuto un suggerimento sul fatto che un modo semplice per eseguire il debug di problemi con un servizio che non si avvia è decommentare temporaneamente la daemon: simplelinea per farla comportare come un'app normale e quindi avviare manualmente il servizio "appified" comesudo /snap/bin/<servicename>
David Planella,

è possibile reindirizzare i registri su un file personalizzato anziché su journal?
Ankur Bhatia,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.