How Are Snaps Updated (Refreshed) When Running?

Hi, I’m a bit confused on how Snap handles app (snap) updates for software that is still running on system. For context, I only have experience with Snap on Ubuntu desktop, so I have not seen how snaps work when deployed on a server.

I’ve looked at some documentation, primarily the man page for snap as well as Snapcraft’s page on managing updates, but I’m still confused about what happens if a refresh is done on a running app. I now know that Ubuntu uses “refresh awareness” to block refreshes as appropriate, but I also know that wasn’t always the case. So what happens if a snap (say, Firefox) performs a refresh while it’s running? Does it just kill the process and update the snap? I would think so, but I may be mistaken.

Also, for server software that runs all the time, how is that handled? I know that Ubuntu Core has the Linux kernel as a snap, so I’m thinking that can’t just be killed like any other process. Or what about something like the Nextcloud snap, which needs to minimize downtime and disruptions? Does Snap have a way to upgrade those packages without killing their respective processes?

Thank you for any clarification!