{{ template "header.tmpl" . }}

# services

path | status | last log line
--- | --- | ---
{{ range $idx, $svc := .Services }}
{{ $svc.Name }} | {{ if restarting $svc.Started }} restarting {{ end }} {{ if $svc.Stopped }} stopped {{ else if not (restarting $svc.Started) }} running {{ end }} | {{ if $svc.Stdout.Lines }} stdout: {{last $svc.Stdout.Lines }} {{ end }} {{ if $svc.Stderr.Lines }} stderr: {{last $svc.Stderr.Lines }} {{ end }}
{{ end }}

## memory

{{ megabytes (index .Meminfo "MemTotal") }} total, {{ megabytes (index .Meminfo "MemAvailable") }} available
resident set size (RSS) by service:
{{ with $rss := initRss }}
init
{{ end }} {{ range $idx, $svc := .Services }} {{ with $rss := $svc.RSS }}
{{ baseName $svc.Name }}
{{ end }} {{ end }}
unaccounted

## storage

{{ if eq .PermAvail 0 }} {{ if ne .PermUUID "" }} No permanent storage mounted. To create a filesystem for permanent storage, plug the SD card into a Linux computer and use `mkfs.ext4 /dev/disk/by-partuuid/{{ .PermUUID }}`. {{ else }} No permanent storage mounted. To create a filesystem for permanent storage, plug the SD card into a Linux computer and, if your SD card is `/dev/sdb`, use `mkfs.ext4 /dev/sdb4`. {{ end }} {{ else }} {{ .PermDev }}: {{ gigabytes .PermTotal }} total, {{ gigabytes .PermUsed }} used, {{ gigabytes .PermAvail }} avail
{{ end }} {{ range $idx, $dev := .MountDevices }} {{ $dev.Dev }}: {{ gigabytes $dev.Total }} total, {{ gigabytes $dev.Used }} used, {{ gigabytes $dev.Avail }} avail
{{ end }}

## private network addresses

{{ range $idx, $addr := .PrivateAddrs }}
- {{ $addr }}
{{ end }}

## public network addresses

{{ range $idx, $addr := .PublicAddrs }}
- {{ $addr }}
{{ end }}

{{ template "footer.tmpl" . }}