shadowsocks / shadowsocks-nodejs

https://github.com/shadowsocks/shadowsocks
Other
1.25k stars 724 forks source link

不好意思,又有问题...node总会自动关闭 #32

Closed zhfish closed 11 years ago

zhfish commented 11 years ago

我之前的命令 nohup node /var/shadowsocks/server.js >/var/shadowsocks/log 2>&1 & ,看log,大概每次都会在15-20分钟自动关闭,并没有报错.. 请问这是何原因,系统是ubuntu12.04,用apt-get装的nodejs

另外上不了youtube和facebook,莫非是被劫持了么?但pptp上去并没有问题,我在v2ex上发的帖子http://www.v2ex.com/t/61744

config是

{
    "server":"myip",
    "server_port":443,
    "local_port":1080,
    "password":"mypw",
    "timeout":600,
    "method":"rc4"
}
clowwindy commented 11 years ago

也许你用的不是 bash,或者 vps 有重启或者什么限制。

浏览器要设置远程解析 DNS,方法见 readme

zhfish commented 11 years ago

果然远程解析DNS就好了.. vps没啥限制,也肯定是bash..我换shadowsocks-go就没问题,奇怪的是开了1整天了,用了大概几个小时,nodejs和go一起开着,居然都没问题..

dallascao commented 11 years ago

给你一段shadowsock-nodejs监控的脚本。自动监控,在 server.js 是否自动关闭、占用cpu超过90、config.js有更新的情况下重启server.js

用法:

  1. 将脚本保存为 ss_mon.sh,放在与sever.js 同一目录。
  2. 添加 crontab,每2分钟运行一次。

    /2 * * * \ bash /your_shadowsocks_folder/ss_mon.sh >/dev/null

#!/bin/bash
SOURCE="${BASH_SOURCE[0]}"
DIR="$( dirname "$SOURCE" )"
while [ -h "$SOURCE" ]
do 
  SOURCE="$(readlink "$SOURCE")"
  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
  DIR="$( cd -P "$( dirname "$SOURCE"  )" && pwd )"
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
cd $DIR
tmp_file="$DIR"/tmp.txt
if [ $(ps ax | grep 'server.js' | wc -l) -gt 1 ]; then
    old_time=`cat "$tmp_file"`
    new_time=`ls -l "$DIR"/config.json`
    if [ "$old_time" == "$new_time" ]; then
        PERCENT=`top -p \`pidof node\` -n 1 -b | grep 'node' | awk '{ print $9 }' | cut -d'.' -f1`
        if [ $PERCENT -lt 90 ];then
            echo running and json not updated. CPU uti: $PERCENT
            exit 0
        else
            printf "$(date)"": cpu over 90\n" >> cpu_mon.log
        fi
    fi
fi
ls -l "$DIR"/config.json > "$tmp_file"
killall node
/usr/local/bin/node "$DIR"/server.js >> server.log &
echo "restart done!"
clowwindy commented 11 years ago

可以用 supervisor