2017-11-23 6 views
1

Unixに接続するボックスを作成して、この接続を次のメソッドに渡し、シェルスクリプトを実行します。また、私は他のファイルでこのメソッドを呼び出しています。 Pythonの初心者は、助けてください。サブプロセスとrpycを使用して、Pythonでメソッドから他のメソッドに接続を渡します。

FILE1:

from file2 import * 
def start(): 
     one=libs() 
     one.connect() 
     one.run() 

FILE2:私はhere.Getting OOPSだけでコードが0で終了エラーまたは出力を実装しないようにしようとmは何を間違った私がやっている、

import rpyc 

class libs(): 
    def connect(self): 
     self.conn=rpyc.classic.connect("hostname") 
     self.remote=self.conn.modules.subprocess 
     return 
    def run(self): 

     p1="sh -vx /tmp/test.sh" 
     self.result=self.remote.Popen(p1,shell=True,stdout=remote.PIPE,stderr=remote.PIPE) 
     out,err=self.result.communicate() 
     print out,err 
     return out,err 

これも、file2の両方のメソッドを1つに結合してから、file1の中で1つのメソッドを呼び出すだけでした。

import rpyc 

class libs(): 
p1="sh -vx /tmp/test.sh" 
    def connect(self,p1): 
     self.conn=rpyc.classic.connect("hostname") 
     self.remote=self.conn.modules.subprocess 


self.result=self.remote.Popen(p1,shell=True,stdout=remote.PIPE,stderr=remote.PIPE) 
     out,err=self.result.communicate() 
     print out,err 
     return out,err 
+0

あなたは1つの関数から直接それを試してみましたか?それはそこに言葉をして、それは現在のエラーや問題は何ですか?現在のところ、この質問はかなり広いです... –

+0

出力コードは0で終了しません。 'code'def connect(self): self.conn = rpyc.classic.connect(" hostname ") self.remote = self .conn.modulesprocessp1 = "sh -vx /tmp/test.sh" self.result = self.remote.Popen(p1、shell = True、stdout = remote.PIPE、stderr = remote.PIPE) out 、err = self.result.communicate() print out、err return、err 'code'そしてfile1に1つのメソッドしか呼び出していない –

+0

リモートシステムの'/tmp/test.sh'には何が入っていますか? – stark

答えて

0

まずはPythonの学習を始めましたか?

あなたが関数やメソッドまたは何でもあなたが括弧を必要とする呼び出し可能であるを呼び出すと...

def start(): 
     one=libs() 
     one.connect() 
     one.run() 
+0

質問をしている間にタイプミスがあったことを指摘してくれてありがとう、訂正しました。 –

関連する問題