
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