V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
youthcould
V2EX  ›  macOS

MEOW 和 COW 如何无窗口重启,有没有对应的 alfred workflow

  •  
  •   youthcould · Aug 20, 2016 · 3255 views
    This topic created in 3546 days ago, the information mentioned may be changed or developed.
    RT ,有时候需要重启下,只能用 terminal ,然后那个窗口就关闭不了(关闭 COW 或者 MEOW 就关闭了)
    最后有对应的 alfred workflow
    13 replies    2016-08-21 14:10:28 +08:00
    humiaozuzu
        1
    humiaozuzu  
       Aug 20, 2016
    用 GAX 啊
    UnisandK
        2
    UnisandK  
       Aug 20, 2016
    launchctl , suid
    或者用 GoAgentX 做守护, alfred 用 AppleScript 控制 https://github.com/BarelyWang/GoAgentX/wiki/Control-GoAgentX-with-Apple-Script
    unidentifiedme
        3
    unidentifiedme  
       Aug 20, 2016
    用 Alfred 跑一下 nohup & 不行么
    guoer
        4
    guoer  
       Aug 20, 2016 via iPhone
    我是写个 apple script 搞定的
    youthcould
        5
    youthcould  
    OP
       Aug 20, 2016
    @guoer 求,我是小白,不懂这个
    youthcould
        6
    youthcould  
    OP
       Aug 20, 2016
    @unidentifiedme 求具体指点
    mrytsr
        7
    mrytsr  
       Aug 20, 2016 via Android
    export PATH
    zander
        8
    zander  
       Aug 20, 2016
    用 launchctl 来保证它一直是启动的。
    jsfaint
        9
    jsfaint  
       Aug 20, 2016 via Android
    cow 支持发送 sigusr1 来重启
    caidaoli
        10
    caidaoli  
       Aug 20, 2016
    haha1903
        11
    haha1903  
       Aug 21, 2016
    窗口上直接 cow & 就行了, nohup 也不需要的。 cow 应该不响应 hup 的。
    zhouzm
        12
    zhouzm  
       Aug 21, 2016
    launchctl 模板:保存为 "/Library/LaunchDaemons/me.meowproxy.meow.plist"
    /Users/xxx/ 替换为你的用户名

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>Label</key>
    <string>me.meowproxy.meow</string>
    <key>ProgramArguments</key>
    <array>
    <string>/Users/xxx/MEOW</string>
    <string>-rc=/Users/xxx/.meow/rc</string>
    </array>
    <key>RunAtLoad</key>
    <true />
    <key>EnvironmentVariables</key>
    <dict>
    <key>HOME</key>
    <string>/Users/xxx</string>
    </dict>
    <key>SoftResourceLimits</key>
    <dict>
    <key>NumberOfFiles</key>
    <integer>80480</integer>
    </dict>
    <key>StandardErrorPath</key>
    <string>/var/log/meow.log</string>
    <key>StandardOutPath</key>
    <string>/var/log/meow.log</string>
    </dict>
    </plist>

    shell script :
    alias meowon='sudo launchctl load /Library/LaunchDaemons/me.meowproxy.meow.plist'
    alias meowoff='sudo launchctl unload /Library/LaunchDaemons/me.meowproxy.meow.plist'

    我的 launchctl 配置为 sudo 免密码,所以可以使用以下脚本切换服务器(使用行号确定 server ):

    proxy(){
    unset LINE
    unset SERVER
    if [[ $1 ]]; then
    if [[ $1 == "do" ]]; then
    LINE=37
    SERVER=DigitalOcean
    elif [[ $1 == "bwg" ]]; then
    LINE=39
    SERVER=Bandwagon
    elif [[ $1 == "bwgb" ]]; then
    LINE=41
    SERVER=Bandwagon-Aliyun-Bridge
    fi
    if [[ $LINE ]]; then
    sed -i '' 's/^proxy =/# proxy =/' ~/.meow/rc
    sed -i '' $LINE's/^# proxy =/proxy =/' ~/.meow/rc
    meowoff && meowon
    echo Changed MEOW proxy to $SERVER!
    fi
    else
    LINE=$(awk '/^proxy =/ {print NR}' ~/.meow/rc)
    if [[ $LINE == 37 ]]; then
    SERVER=DigitalOcean
    elif [[ $LINE == 39 ]]; then
    SERVER=Bandwagon
    elif [[ $LINE == 41 ]]; then
    SERVER=Bandwagon-Aliyun-Bridge
    fi
    echo current use Proxy $SERVER!
    meowoff && meowon
    echo MEOW restarted!
    fi
    }

    查看日志:
    tail -n 500 /var/log/meow.log
    youthcould
        13
    youthcould  
    OP
       Aug 21, 2016
    @zhouzm 多谢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1073 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 18:06 · PVG 02:06 · LAX 11:06 · JFK 14:06
    ♥ Do have faith in what you're doing.