tailscale.init 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/bin/sh
  2. # Copyright (c) Tailscale Inc & contributors
  3. # SPDX-License-Identifier: BSD-3-Clause
  4. ### BEGIN INIT INFO
  5. # Provides: tailscaled
  6. # Required-Start:
  7. # Required-Stop:
  8. # Default-Start:
  9. # Default-Stop:
  10. # Short-Description: Tailscale Mesh Wireguard VPN
  11. ### END INIT INFO
  12. set -e
  13. # /etc/init.d/tailscale: start and stop the Tailscale VPN service
  14. test -x /usr/sbin/tailscaled || exit 0
  15. umask 022
  16. . /lib/lsb/init-functions
  17. # Are we running from init?
  18. run_by_init() {
  19. ([ "$previous" ] && [ "$runlevel" ]) || [ "$runlevel" = S ]
  20. }
  21. export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
  22. case "$1" in
  23. start)
  24. log_daemon_msg "Starting Tailscale VPN" "tailscaled" || true
  25. if start-stop-daemon --start --oknodo --name tailscaled -m --pidfile /run/tailscaled.pid --background \
  26. --exec /usr/sbin/tailscaled -- \
  27. --state=/var/lib/tailscale/tailscaled.state \
  28. --socket=/run/tailscale/tailscaled.sock \
  29. --port 41641;
  30. then
  31. log_end_msg 0 || true
  32. else
  33. log_end_msg 1 || true
  34. fi
  35. ;;
  36. stop)
  37. log_daemon_msg "Stopping Tailscale VPN" "tailscaled" || true
  38. if start-stop-daemon --stop --remove-pidfile --pidfile /run/tailscaled.pid --exec /usr/sbin/tailscaled; then
  39. log_end_msg 0 || true
  40. else
  41. log_end_msg 1 || true
  42. fi
  43. ;;
  44. status)
  45. status_of_proc -p /run/tailscaled.pid /usr/sbin/tailscaled tailscaled && exit 0 || exit $?
  46. ;;
  47. *)
  48. log_action_msg "Usage: /etc/init.d/tailscaled {start|stop|status}" || true
  49. exit 1
  50. esac
  51. exit 0