| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #!/bin/sh
- # Copyright (c) Tailscale Inc & contributors
- # SPDX-License-Identifier: BSD-3-Clause
- ### BEGIN INIT INFO
- # Provides: tailscaled
- # Required-Start:
- # Required-Stop:
- # Default-Start:
- # Default-Stop:
- # Short-Description: Tailscale Mesh Wireguard VPN
- ### END INIT INFO
- set -e
- # /etc/init.d/tailscale: start and stop the Tailscale VPN service
- test -x /usr/sbin/tailscaled || exit 0
- umask 022
- . /lib/lsb/init-functions
- # Are we running from init?
- run_by_init() {
- ([ "$previous" ] && [ "$runlevel" ]) || [ "$runlevel" = S ]
- }
- export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
- case "$1" in
- start)
- log_daemon_msg "Starting Tailscale VPN" "tailscaled" || true
- if start-stop-daemon --start --oknodo --name tailscaled -m --pidfile /run/tailscaled.pid --background \
- --exec /usr/sbin/tailscaled -- \
- --state=/var/lib/tailscale/tailscaled.state \
- --socket=/run/tailscale/tailscaled.sock \
- --port 41641;
- then
- log_end_msg 0 || true
- else
- log_end_msg 1 || true
- fi
- ;;
- stop)
- log_daemon_msg "Stopping Tailscale VPN" "tailscaled" || true
- if start-stop-daemon --stop --remove-pidfile --pidfile /run/tailscaled.pid --exec /usr/sbin/tailscaled; then
- log_end_msg 0 || true
- else
- log_end_msg 1 || true
- fi
- ;;
- status)
- status_of_proc -p /run/tailscaled.pid /usr/sbin/tailscaled tailscaled && exit 0 || exit $?
- ;;
- *)
- log_action_msg "Usage: /etc/init.d/tailscaled {start|stop|status}" || true
- exit 1
- esac
- exit 0
|