The refresh command prints pending refreshes of the calling snap and can hold
back disruptive refreshes of other snaps, such as refreshes of the kernel or
base snaps that can trigger a restart. This command can be used from the
gate-auto-refresh hook which is only run during auto-refresh.
Snap can query pending refreshes with:
$ snapctl refresh --pending
pending: ready
channel: stable
version: 2
revision: 2
base: false
restart: false
The 'pending' flag can be "ready", "none" or "inhibited". It is set to "none"
when a snap has no pending refreshes. It is set to "ready" when there are
pending refreshes and to ”inhibited” when pending refreshes are being
held back because more or more snap applications are running with the
“refresh app awareness” feature enabled.
The "base" and "restart" flags indicate whether the base snap is going to be
updated and/or if a restart will occur, both of which are disruptive. A base
snap update can temporarily disrupt the starting of applications or hooks from
the snap.
To tell snapd to proceed with pending refreshes:
$ snapctl refresh --pending --proceed
Note, a snap using --proceed cannot assume that the updates will occur as they
might be held back by other snaps.
To hold refresh for up to 90 days for the calling snap:
$ snapctl refresh --pending --hold