When creating a snap, and according to the syntax of the snapcraft.yaml file, the daemon
keyword can be added to specify that the app will be run as a system service. As an example of such declaration:
apps:
tinyproxy:
command: ./launcher.sh
daemon: simple
plugs: [network,network-bind]
However, what does it exactly mean to be a system service in a snap? That is, what's their lifecycle (start, restart, stop...)? Can I monitor them running in the system with the usual tools (ps
, top
, etc)?
From https://developer.ubuntu.com/en/snappy/build-apps/debug/
Testing a service
To test a service it must be installed first. Once it is installed, systemd's
systemctl
command can be used to see if the service starts and runs as expected, for example:Finding the logs
The
journalctl
command can be used to inspect the messages that the service sends tostdout
/stderr
, for example:Services may log additional data to syslog (
/var/log/syslog
) or to custom log directories. Note that custom log directories must be in a path that the service can write to (usuallySNAP_DATA
).Getting a core dump
To enable core dumps you have to configure a place to write them to through sysfs. For instance you can use
to ensure that your coredumps get written into the
/tmp
directory regardless of whereCWD
of the process that received a signal was.