From ad588af75f517d51c716854b6a772c130ddd9086 Mon Sep 17 00:00:00 2001 From: breakwa11 Date: Wed, 24 Jun 2015 12:56:46 +0800 Subject: [PATCH] single user script --- shadowsocks/run.sh | 6 ++++++ shadowsocks/server.py | 34 ++++++++++++++++++++++++++++------ shadowsocks/stop.sh | 3 +++ shadowsocks/tail.sh | 3 +++ 4 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 shadowsocks/run.sh create mode 100644 shadowsocks/stop.sh create mode 100644 shadowsocks/tail.sh diff --git a/shadowsocks/run.sh b/shadowsocks/run.sh new file mode 100644 index 0000000..d1aa82c --- /dev/null +++ b/shadowsocks/run.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +eval $(ps -ef | grep "[0-9] python server\\.py a" | awk '{print "kill "$2}') +nohup python server.py a >> ssserver.log 2>&1 & + +tail -f ssserver.log diff --git a/shadowsocks/server.py b/shadowsocks/server.py index 429a20a..bcccdb5 100755 --- a/shadowsocks/server.py +++ b/shadowsocks/server.py @@ -53,12 +53,34 @@ def main(): dns_resolver = asyncdns.DNSResolver() for port, password in config['port_password'].items(): a_config = config.copy() - a_config['server_port'] = int(port) - a_config['password'] = password - logging.info("starting server at %s:%d" % - (a_config['server'], int(port))) - tcp_servers.append(tcprelay.TCPRelay(a_config, dns_resolver, False)) - udp_servers.append(udprelay.UDPRelay(a_config, dns_resolver, False)) + ipv6_ok = False + if 'server_ipv6' in a_config: + try: + if len(a_config['server_ipv6']) > 2 and a_config['server_ipv6'][0] == "[" and a_config['server_ipv6'][-1] == "]": + a_config['server_ipv6'] = a_config['server_ipv6'][1:-1] + a_config['server_port'] = int(port) + a_config['password'] = password + a_config['server'] = a_config['server_ipv6'] + logging.info("starting server at %s:%d" % + (a_config['server'], int(port))) + tcp_servers.append(tcprelay.TCPRelay(a_config, dns_resolver, False)) + udp_servers.append(udprelay.UDPRelay(a_config, dns_resolver, False)) + if a_config['server_ipv6'] == "::": + ipv6_ok = True + except Exception as e: + shell.print_exception(e) + + if not ipv6_ok: + try: + a_config = config.copy() + a_config['server_port'] = int(port) + a_config['password'] = password + logging.info("starting server at %s:%d" % + (a_config['server'], int(port))) + tcp_servers.append(tcprelay.TCPRelay(a_config, dns_resolver, False)) + udp_servers.append(udprelay.UDPRelay(a_config, dns_resolver, False)) + except Exception as e: + shell.print_exception(e) def run_server(): def child_handler(signum, _): diff --git a/shadowsocks/stop.sh b/shadowsocks/stop.sh new file mode 100644 index 0000000..af1fbf9 --- /dev/null +++ b/shadowsocks/stop.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +eval $(ps -ef | grep "[0-9] python server\\.py a" | awk '{print "kill "$2}') diff --git a/shadowsocks/tail.sh b/shadowsocks/tail.sh new file mode 100644 index 0000000..aa37139 --- /dev/null +++ b/shadowsocks/tail.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +tail -f ssserver.log