tailscale/ipn/ipnlocal
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
..
testdata ipn/ipnlocal: fix the path for writing cert files (#7203) 2023-02-07 14:34:04 -08:00
breaktcp_darwin.go cmd/tailscale: add debug commands to break connections 2023-08-11 06:37:26 -07:00
breaktcp_linux.go cmd/tailscale: add debug commands to break connections 2023-08-11 06:37:26 -07:00
c2n_pprof.go tailcfg: move LogHeapPprof from Debug to c2n [capver 69] 2023-08-16 20:35:04 -07:00
c2n.go ipn/ipnlocal: run "tailscale update" via systemd-run on Linux (#10229) 2023-11-13 16:41:21 -08:00
cert_js.go ipn/ipnlocal: do unexpired cert renewals in the background 2023-10-12 16:02:45 -07:00
cert_test.go all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2023-08-17 08:42:35 -07:00
cert.go ipn/ipnlocal: do unexpired cert renewals in the background 2023-10-12 16:02:45 -07:00
dnsconfig_test.go types/netmap: remove NetworkMap.{Addresses,MachineStatus} 2023-09-18 17:08:11 +01:00
expiry_test.go types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView 2023-08-21 13:34:49 -07:00
expiry.go types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView 2023-08-21 13:34:49 -07:00
local_test.go ipn,tailconfig: clean up unreleased and removed app connector service 2023-11-09 22:36:52 -08:00
local.go ipn/ipnlocal: respect ExitNodeAllowLANAccess on iOS (#10230) 2023-11-13 13:18:30 -08:00
loglines_test.go tsd: add package with System type to unify subsystem init, discovery 2023-05-04 14:21:59 -07:00
network-lock_test.go ipn/ipnlocal: add tailnet MagicDNS name to ipn.LoginProfile 2023-09-18 13:58:32 -04:00
network-lock.go ipn/ipnlocal: add tailnet MagicDNS name to ipn.LoginProfile 2023-09-18 13:58:32 -04:00
peerapi_h2c.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
peerapi_macios_ext.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
peerapi_test.go appc,cmd/sniproxy,ipn/ipnlocal: split sniproxy configuration code out of appc 2023-11-02 12:51:40 -07:00
peerapi.go ipn/ipnlocal: add empty address to the app-connector localNets set 2023-11-08 10:44:03 -08:00
profiles_notwindows.go ipn/ipnlocal: fix profile duplication 2023-08-08 13:43:37 -06:00
profiles_test.go ipn/ipnlocal: add tailnet MagicDNS name to ipn.LoginProfile 2023-09-18 13:58:32 -04:00
profiles_windows.go Revert "ipn/ipnlocal: add new DNS and subnet router policies" (#9962) 2023-10-24 17:07:25 -07:00
profiles.go Revert "ipn/ipnlocal: add new DNS and subnet router policies" (#9962) 2023-10-24 17:07:25 -07:00
serve_test.go ipn/ipnlocal: close connections for removed proxy transports (#9884) 2023-10-20 12:04:00 +01:00
serve.go ipn/ipnlocal: allow connecting to local web client 2023-11-09 08:49:15 -08:00
ssh_stub.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
ssh_test.go ipn/ipnlocal: drop not required StateKey parameter 2023-01-30 17:58:55 -08:00
ssh.go all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2023-08-17 08:42:35 -07:00
state_test.go ipn/ipnlocal: add tailnet MagicDNS name to ipn.LoginProfile 2023-09-18 13:58:32 -04:00
web_client_stub.go ipn/ipnlocal: allow connecting to local web client 2023-11-09 08:49:15 -08:00
web_client.go ipn/ipnlocal: allow connecting to local web client 2023-11-09 08:49:15 -08:00