使用sh一键启动clash代理,停止脚本后关闭代理
明白了,可以将 ./clash -d .
放到后台运行,并在脚本启动时设置代理。以下是修改后的脚本:
#!/bin/bash
# 设置 Ubuntu 网络代理(HTTP、HTTPS 和 SOCKS)
gsettings set org.gnome.system.proxy mode 'manual'
gsettings set org.gnome.system.proxy.http host '127.0.0.1'
gsettings set org.gnome.system.proxy.http port 7890
gsettings set org.gnome.system.proxy.https host '127.0.0.1'
gsettings set org.gnome.system.proxy.https port 7890
gsettings set org.gnome.system.proxy.socks host '127.0.0.1'
gsettings set org.gnome.system.proxy.socks port 7891
# 启动 Clash 并将其放到后台运行
./clash -d . &
CLASH_PID=$!
echo "访问 https://clash.razord.top/#/proxies 可以进行切换节点、测延迟等操作。"
# 捕获终止信号(例如 Ctrl+C)
trap 'cleanup' INT TERM
cleanup() {
echo "停止脚本,关闭网络代理..."
# 关闭 Ubuntu 网络代理
gsettings set org.gnome.system.proxy mode 'none'
# 停止 Clash
kill $CLASH_PID
exit 0
}
# 等待 Clash 进程结束
wait $CLASH_PID
# 停止脚本,关闭网络代理(如果因其他原因退出)
cleanup
保存该脚本为 start_clash.sh
,然后给它可执行权限:
chmod +x start_clash.sh
运行脚本:
./start_clash.sh
在这个版本中,Clash 将在后台运行(&
),并且脚本会继续执行。我们使用 trap
捕获终止信号,当脚本终止时会调用 cleanup
函数来关闭代理和停止 Clash。 wait $CLASH_PID
用于等待 Clash 进程结束,如果因为其他原因退出, cleanup
函数也会被调用。
本文作者: 永生
本文链接: https://yys.zone/detail/?id=354
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
发表评论
评论列表 (0 条评论)
暂无评论,快来抢沙发吧!