How do I launch background jobs w/ paramiko?

Posted by sophacles on Stack Overflow See other posts from Stack Overflow or by sophacles
Published on 2010-02-04T18:39:40Z Indexed on 2010/03/31 20:13 UTC
Read the original article Hit count: 333

Filed under:
|
|
|

Here is my scenario: I am trying to automate some tasks using Paramiko. The tasks need to be started in this order (using the notation (host, task)): (A, 1), (B, 2), (C, 2), (A,3), (B,3) -- essentially starting servers and clients for some testing in the correct order. Further, because in the tests networking may get mucked up, and because I need some of the output from the tests, I would like to just redirect output to a file.

In similar scenarios the common response is to use 'screen -m -d' or to use 'nohup'. However with paramiko's exec_cmd, nohup doesn't actually exit. Using:

bash -c -l nohup test_cmd & 

doesnt work either, exec_cmd still blocks to process end.

In the screen case, output redirection doesn't work very well, (actually, doesnt work at all the best I can figure out).

So, after all that explanation, my question is: is there an easy elegant way to detach processes and capture output in such a way as to end paramiko's exec_cmd blocking?

Update

The dtach command works nicely for this!

© Stack Overflow or respective owner

Related posts about paramiko

Related posts about nohup