Jak działają usługi systemowe w trybie Snap

9

Podczas tworzenia przystawki, a według składni pliku snapcraft.yaml The daemonkluczowe mogą być dodawane, aby określić, że aplikacja zostanie uruchomiony jako usługa systemowa. Jako przykład takiej deklaracji:

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

Co jednak oznacza bycie usługą systemową w mgnieniu oka? To jest, jaki jest ich cykl życia (start, restart, stop ...)? Mogę monitorować ich działa w systemie za pomocą zwykłych narzędzi ( ps, topitp)?

David Planella
źródło

Odpowiedzi:

8

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

Testowanie usługi

Aby przetestować usługę, należy ją najpierw zainstalować. Po zainstalowaniu można użyć systemctlpolecenia systemd, aby sprawdzić, czy usługa uruchamia się i działa zgodnie z oczekiwaniami, na przykład:

systemctl status snap.<name>.<appname>

Znajdowanie dzienników

journalctlKomenda może być użyta do sprawdzenia wiadomości, że usługa wysyła do stdout/ stderr, na przykład:

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

Usługi mogą rejestrować dodatkowe dane w syslog ( /var/log/syslog) lub w niestandardowych katalogach dzienników. Pamiętaj, że niestandardowe katalogi dziennika muszą znajdować się w ścieżce, do której usługa może zapisywać (zwykle SNAP_DATA).

Uzyskiwanie zrzutu podstawowego

Aby włączyć zrzuty pamięci, musisz skonfigurować miejsce, w którym będziesz zapisywać je za pomocą sysfs. Na przykład możesz użyć

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

aby upewnić się, że twoje zrzuty rdzeniowe zostaną zapisane w /tmpkatalogu, niezależnie od tego, gdzie CWDbył proces, który odebrał sygnał.

dholbach
źródło
Dzięki! Dostałem też wskazówkę, że łatwym sposobem na debugowanie problemów z usługą, która się nie uruchamia, jest tymczasowe odkomentowanie daemon: simplelinii, aby działała jak zwykła aplikacja, a następnie ręczne uruchomienie usługi „zatwierdzonej” jakosudo /snap/bin/<servicename>
David Planella
czy możliwe jest przekierowanie dzienników do pliku niestandardowego zamiast dziennika?
Ankur Bhatia,