From 4e2c0a3ad8c5a62d0e8f412daf79eae67e9031bb Mon Sep 17 00:00:00 2001 From: Adriana Draghici Date: Fri, 5 Mar 2010 12:42:37 +0200 Subject: [PATCH] server: fixed stderr, stdout redirect --- bt_comm/server/Client.py | 4 +-- bt_comm/server/Server_NO_DAEMON.py | 17 +++--------- scripts/start-clients/BitTorrentClientRun.py | 27 ++++++++++++-------- scripts/start-clients/TransmissionRun.py | 10 +++++--- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/bt_comm/server/Client.py b/bt_comm/server/Client.py index 918e81e..ebdc9c7 100644 --- a/bt_comm/server/Client.py +++ b/bt_comm/server/Client.py @@ -1,4 +1,4 @@ -import sys, socket +import sys,time, socket import pickle from Util import * MSGLEN = 1024 @@ -65,7 +65,7 @@ def test_all_commands(): print pid s = MySocket() s.connect(SERVER_HOST, SERVER_PORT) - + time.sleep(30) response = s.send_command(STOP_MSG, pid) print response diff --git a/bt_comm/server/Server_NO_DAEMON.py b/bt_comm/server/Server_NO_DAEMON.py index 18d9461..5da2405 100644 --- a/bt_comm/server/Server_NO_DAEMON.py +++ b/bt_comm/server/Server_NO_DAEMON.py @@ -7,7 +7,7 @@ from daemon import Daemon from Util import * from Util import SERVER_HOST, SERVER_PORT from BitTorrentClientRun import * - +from TransmissionRun import * BUFFER_SIZE = 4096 states = {} # keeps track of what kind of message was previously receveid on a socket. @@ -31,14 +31,8 @@ def recv_pickled_data(clientsock): def start_bt_client(bt_client_data): if bt_client_data[CLIENT] == TRANSMISSION: - """btcr = BitTorrentClientRun("/usr/bin/transmissioncli", - "$base_path --port $port $torrent_file $download_dir> $output_dir/$output_file", - "TR_DEBUG=2 $base_path/cli/transmissioncli --port $port $torrent_file $download_dir 2> $log_dir/$log_file > $output_dir/$output_file")""" - - btcr = BitTorrentClientRun("/usr/bin/transmissioncli", - "$base_path --port $port $torrent_file $download_dir", - "TR_DEBUG=2 $base_path/cli/transmissioncli --port $port $torrent_file $download_dir 2> $log_dir/$log_file > $output_dir/$output_file") - + + btcr = TransmissionRun("/usr/bin/transmissioncli") btcr.config_run(bt_client_data[DL_DIR], bt_client_data[LOG_DIR], bt_client_data[OUT_FILE], bt_client_data[LOG_DIR], bt_client_data[LOG_FILE], bt_client_data[PORT], @@ -53,10 +47,7 @@ def start_bt_client(bt_client_data): return -1 """Simple test - btcr = BitTorrentClientRun("/usr/bin/transmissioncli", - "$base_path --download-dir $download_dir --port $port $torrent_file > $output_dir/$output_file", - "TR_DEBUG=2 $base_path/cli/transmissioncli --download-dir $download_dir --port $port $torrent_file 2> $log_dir/$log_file > $output_dir/$output_file") - + btcr = TransmissionRun("/usr/bin/transmissioncli") btcr.config_run("/home/adriana/p2p/p2p-dld/transmission", "/home/adriana/p2p/p2p-log/transmission", "scrubs.out", "/home/adriana/p2p/", diff --git a/scripts/start-clients/BitTorrentClientRun.py b/scripts/start-clients/BitTorrentClientRun.py index 56f494c..83311c0 100644 --- a/scripts/start-clients/BitTorrentClientRun.py +++ b/scripts/start-clients/BitTorrentClientRun.py @@ -12,7 +12,7 @@ import subprocess import shlex from string import Template -DEBUG = False +DEBUG = True class BitTorrentClientRun: def __init__(self, base_path, simple_run_expr, logging_run_expr): @@ -23,9 +23,9 @@ class BitTorrentClientRun: def config_run(self, download_dir, output_dir, output_file, log_dir, log_file, port, torrent_file): self.download_dir = download_dir self.output_dir = output_dir - self.output_file = output_file + self.output_file = output_file # output from stdout self.log_dir = log_dir - self.log_file = log_file + self.log_file = log_file # output from stderr self.port = port self.torrent_file = torrent_file @@ -58,17 +58,22 @@ class BitTorrentClientRun: print self.logging_run_command def run_client(self, command): - # os.system(command) - #split command + + # split command args = shlex.split(command) - print args - p=subprocess.Popen(args, shell=False, stdout=subprocess.PIPE) #does not create sh process + if(DEBUG): + print "BitTorrentClientRun: command =", args + + log_redirect = open(self.log_dir+"/"+self.log_file,"w") + output_redirect = open(self.output_dir+"/"+self.output_file,"w") + p=subprocess.Popen(args, shell=False, #does not create sh process + stdout=log_redirect, + stderr=output_redirect) pid = p.pid - print "pid =", pid + if(DEBUG): + print "BitTorrentClientRun: pid =", pid return pid - - # todo citit din stdout si pun in output_dir/output_file. le voi primi ca ragumente la functia de run_client - #output, errors = p.communicate() + def main(): diff --git a/scripts/start-clients/TransmissionRun.py b/scripts/start-clients/TransmissionRun.py index c6ba26e..2a6917d 100644 --- a/scripts/start-clients/TransmissionRun.py +++ b/scripts/start-clients/TransmissionRun.py @@ -15,9 +15,13 @@ DEBUG = False class TransmissionRun(BitTorrentClientRun): def __init__(self, base_path): BitTorrentClientRun.__init__(self, base_path, - "$base_path/cli/transmissioncli --download-dir $download_dir --port $port $torrent_file > $output_dir/$output_file", - "TR_DEBUG=2 $base_path/cli/transmissioncli --download-dir $download_dir --port $port $torrent_file 2> $log_dir/$log_file > $output_dir/$output_file") - + "$base_path --port $port $torrent_file $download_dir> $output_dir/$output_file", + "TR_DEBUG=2 $base_path --port $port $torrent_file $download_dir 2> $log_dir/$log_file > $output_dir/$output_file") + # for some versions of transmission the cmdline arguments are given differently: + """BitTorrentClientRun.__init__(self, base_path, + "$base_path --download-dir $download_dir --port $port $torrent_file > $output_dir/$output_file", + "TR_DEBUG=2 $base_path --download-dir $download_dir --port $port $torrent_file 2> $log_dir/$log_file > $output_dir/$output_file") + """ def main(): -- 2.20.1