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
あなたは1つの関数から直接それを試してみましたか?それはそこに言葉をして、それは現在のエラーや問題は何ですか?現在のところ、この質問はかなり広いです... –
出力コードは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つのメソッドしか呼び出していない –
リモートシステムの'/tmp/test.sh'には何が入っていますか? – stark