invoke.exceptions.ThreadException:
Saw 1 exceptions within threads (OSError):
Thread args: {'kwargs': {'buffer_': ['[sudo] password: '],
'hide': False,
'output': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>},
'target': <bound method Runner.handle_stderr of <fabric.runners.Remote object at 0x7f066e63a9e8>>}
Traceback (most recent call last):
File "/home/amezin/test/.venv/lib/python3.6/site-packages/invoke/util.py", line 233, in run
super(ExceptionHandlingThread, self).run()
File "/usr/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "/home/amezin/test/.venv/lib/python3.6/site-packages/invoke/runners.py", line 750, in handle_stderr
buffer_, hide, output, reader=self.read_proc_stderr
File "/home/amezin/test/.venv/lib/python3.6/site-packages/invoke/runners.py", line 717, in _handle_output
self.respond(buffer_)
File "/home/amezin/test/.venv/lib/python3.6/site-packages/invoke/runners.py", line 884, in respond
self.write_proc_stdin(response)
File "/home/amezin/test/.venv/lib/python3.6/site-packages/invoke/runners.py", line 960, in write_proc_stdin
self._write_proc_stdin(data.encode(self.encoding))
File "/home/amezin/test/.venv/lib/python3.6/site-packages/fabric/runners.py", line 67, in _write_proc_stdin
return self.channel.sendall(data)
File "/home/amezin/test/.venv/lib/python3.6/site-packages/paramiko/channel.py", line 846, in sendall
sent = self.send(s)
File "/home/amezin/test/.venv/lib/python3.6/site-packages/paramiko/channel.py", line 801, in send
return self._send(s, m)
File "/home/amezin/test/.venv/lib/python3.6/site-packages/paramiko/channel.py", line 1198, in _send
raise socket.error("Socket is closed")
OSError: Socket is closed
๋๋ ๋น์ ์ด๋ณด๊ณ ์๋ ๊ฒ์ ๋ค๋ฅธ ์ค๋ฅ๋ผ๊ณ ์๊ฐํฉ๋๋ค. sudo auth ๋จ๊ณ์ ๋๋ฌํ๊ณ ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. Python 2.7์์ ์ด๊ฒ์ ๋ณด๊ณ ์์ง๋ง stdin์ด /dev/null์์ ๋ฆฌ๋๋ ์
๋ ๋๋ง ํด๋น๋ฉ๋๋ค. pty=True
๋ค์ ์๋ํ์๊ฒ ์ต๋๊น?
@matt-hayden ๋ช ์๊ฐ ๋์ ๋๋ฒ๊น ํ ํ ๋น์ ์ ์ ๋ฅผ ์ ์ ์ ์ ์ฝ์์ ๊ตฌํด์ฃผ์์ต๋๋ค. ํ๋์ ํ๋ก์ธ์ค์ผ์ง๋ผ๋ multiprocessing.Process๋ฅผ ์ฌ์ฉํ๋ ๋์์๋ง ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค๊ณ ๋ง๋ถ์ด๊ณ ์ถ์ต๋๋ค.
@matt-hayden python 3.6์์ ๋ก์ปฌ Ubuntu 18.04 ์ปจํ
์ด๋๋ก ssh'ing(openssh sshd ์คํ)์์ ์ด ๋ฌธ์ ๋ฅผ ๋ณด์์ต๋๋ค. ์ ํํ ๋์ผํ ๊ตฌ์ฑ์ ๋์ผํ 'sudo' ๋ช
๋ น์ด 99%์ ์๊ฐ ๋์ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๊ณ (AuthFailure ๋ฐ์) ๋๋จธ์ง 1%์์๋ OSError๊ฐ ๋ฐ์ํ์ต๋๋ค.
pty๊ฐ True๋ก ์ค์ ๋์๋์ง ๊ธฐ์ต๋์ง ์์ต๋๋ค.
์ด์จ๋ ์ ๋ ์ง๊ธ ํจ๋ธ๋ฆญ์ ์ฌ์ฉํ์ง ์๊ณ ์์ผ๋ฉฐ ์ด ๋ฌธ์ ๊ฐ ์ฌ์ ํ ์กด์ฌํ๋์ง ํ์ธํ ์๊ฐ์ด ์์ต๋๋ค. ๊ทธ๋์ ๋๋ ๋ฌธ์ ๋ฅผ ๋ซ์์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์, ๋์ปค ์ปจํ ์ด๋๋ ์ฌ์ฉํ๊ณ ์์์ต๋๋ค.
@luke-goddard , ์์ ์ญ์ถ์ ๊ณผ ๊ฐ์ด paramiko ๋ด์์ ๋ฐ์ํ ๊ฒฝ์ฐ paramiko ํ๋ก์ ํธ์ ๋ฌธ์ ๋ก ๋ ์ ์ ํ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@matt-hayden ๋ช ์๊ฐ ๋์ ๋๋ฒ๊น ํ ํ ๋น์ ์ ์ ๋ฅผ ์ ์ ์ ์ ์ฝ์์ ๊ตฌํด์ฃผ์์ต๋๋ค. ํ๋์ ํ๋ก์ธ์ค์ผ์ง๋ผ๋ multiprocessing.Process๋ฅผ ์ฌ์ฉํ๋ ๋์์๋ง ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค๊ณ ๋ง๋ถ์ด๊ณ ์ถ์ต๋๋ค.