#!/bin/bash ### BEGIN INIT INFO # Provides: sing-box # Required-Start: $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: 启动时启动 sing-box # Description: 启用 sing-box 提供的服务。 ### END INIT INFO case "$1" in start) setsid /usr/local/bin/sing-box run -c /etc/sing-box/config.json > /dev/null 2>&1 & ;; stop) kill -9 $(pidof /usr/local/bin/sing-box) ;; restart) kill -9 $(pidof /usr/local/bin/sing-box) sleep 1 setsid /usr/local/bin/sing-box run -c /etc/sing-box/config.json > /dev/null 2>&1 & ;; status) echo "$(date) $(curl -x socks5://127.0.0.1:1080 -s https://speed.cloudflare.com/meta -m 5 | awk -F\" '{print $22}')" ;; *) for i in {1..10}; do meta=$(curl -x socks5://127.0.0.1:1080 -s https://speed.cloudflare.com/meta -m 5 | awk -F\" '{print $22}') echo "$(date) $meta" if [[ "$meta" != "$1" ]] then kill -9 $(pidof /usr/local/bin/sing-box) sleep 1 setsid /usr/local/bin/sing-box run -c /etc/sing-box/config.json > /dev/null 2>&1 & sleep 2 else break fi done ;; esac exit 0