Managing snap services
Snaps can define commands to be run as services (via systemd).
The list of services defined in the snap, along with their status, is
accessible via SnapServices.list()
.This returns a dict with
SnapService
instances by service name.
The SnapService
class allows interacting with a specific service:
>>> from snaphelpers import SnapServices
>>> services = SnapServices()
>>> services.list()
{'service1': <snaphelpers._service.SnapService object at 0x7fa4da982cc0>, 'service2': <snaphelpers._service.SnapService object at 0x7fa4da982c50>}
>>> service1 = services.list()['service1']
>>> service1.name
'service1'
>>> service1.enabled, service1.active
(True, False)
>>> service1.notes
[]
>>> service1.start()
>>> service1.enabled, service1.active
(True, True)
>>> service1.stop(disable=True)
>>> service1.enabled, service1.active
(False, False)
It’s also possible to start/stop/restart all services from the
SnapServices
instance:
>>> services.start(enable=True)
>>> [(s.name, s.active, s.enabled) for s in services.list().values()]
[('service1', True, True), ('service2', True, True)]
>>> services.stop(disable=True)
>>> [(s.name, s.active, s.enabled) for s in services.list().values()]
[('service1', False, False), ('service2', False, False)]