tailscale/ipn
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
..
conffile ipn/{conffile,ipnlocal}: start booting tailscaled from a config file w/ auth key 2023-10-17 07:12:49 -07:00
ipnauth ipn/ipnauth: improve the Windows token administrator check 2023-11-03 14:37:04 -06:00
ipnlocal ipn/ipnlocal: run "tailscale update" via systemd-run on Linux (#10229) 2023-11-13 16:41:21 -08:00
ipnserver ipn/localapi: only perform local-admin check in serveServeConfig (#10163) 2023-11-09 12:55:46 -08:00
ipnstate ipn/{ipnlocal,ipnstate,localapi}: add localapi endpoints for client self-update (#10188) 2023-11-09 16:00:47 -05:00
localapi ipn/{ipnlocal,ipnstate,localapi}: add localapi endpoints for client self-update (#10188) 2023-11-09 16:00:47 -05:00
policy ipn,tailconfig: clean up unreleased and removed app connector service 2023-11-09 22:36:52 -08:00
store cmd/k8s-operator,ipn/store/kubestore: patch secrets instead of updating 2023-08-29 13:24:05 -07:00
backend.go cmd/tailscale,ipn/ipnlocal: print debug component names 2023-10-03 06:07:34 -07:00
conf.go ipn: add user pref for running web client 2023-10-31 10:34:56 -07:00
doc.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
fake_test.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
ipn_clone.go ipn: introduce app connector advertisement preference and flags 2023-11-01 10:58:54 -07:00
ipn_test.go net/packet: split off checksum munging into different pkg 2023-10-11 14:25:58 -07:00
ipn_view.go ipn: introduce app connector advertisement preference and flags 2023-11-01 10:58:54 -07:00
prefs_test.go ipn: introduce app connector advertisement preference and flags 2023-11-01 10:58:54 -07:00
prefs.go ipn: introduce app connector advertisement preference and flags 2023-11-01 10:58:54 -07:00
serve_test.go ipn/localapi: require local Windows admin to set serve path (#9969) 2023-10-26 14:40:44 -07:00
serve.go ipn/localapi: require local Windows admin to set serve path (#9969) 2023-10-26 14:40:44 -07:00
store_test.go ipn: avoid useless no-op WriteState calls 2023-08-07 08:44:24 -07:00
store.go taildrop: lazily perform full deletion scan after first taildrop use (#10137) 2023-11-13 12:20:28 -06:00