tailscale/clientupdate
Andrew Lytvynov 955e2fcbfb
ipn/ipnlocal: run "tailscale update" via systemd-run on Linux (#10229)
When we run tailscled under systemd, restarting the unit kills all child
processes, including "tailscale update". And during update, the package
manager will restart the tailscaled unit. Specifically on Debian-based
distros, interrupting `apt-get install` can get the system into a wedged
state which requires the user to manually run `dpkg --configure` to
recover.

To avoid all this, use `systemd-run` where available to run the
`tailscale update` process. This launches it in a separate temporary
unit and doesn't kill it when parent unit is restarted.

Also, detect when `apt-get install` complains about aborted update and
try to restore the system by running `dpkg --configure tailscale`. This
could help if the system unexpectedly shuts down during our auto-update.

Fixes https://github.com/tailscale/corp/issues/15771

Signed-off-by: Andrew Lytvynov <awly@tailscale.com>
2023-11-13 16:41:21 -08:00
..
distsign clientupdate/distsign: add new prod root signing key to keychain 2023-10-11 09:20:17 -07:00
clientupdate_test.go clientupdate: do not recursively delete dirs in cleanupOldDownloads (#10093) 2023-11-02 13:29:52 -07:00
clientupdate_windows.go clientupdate: manually restart Windows GUI after update (#9906) 2023-10-23 10:24:57 -07:00
clientupdate.go ipn/ipnlocal: run "tailscale update" via systemd-run on Linux (#10229) 2023-11-13 16:41:21 -08:00
systemd_linux.go clientupdate: add linux tarball updates (#9144) 2023-08-30 17:25:06 -06:00
systemd_other.go clientupdate: add linux tarball updates (#9144) 2023-08-30 17:25:06 -06:00