Advertisement
Guest User

zombie debootstrap

a guest
Jun 19th, 2014
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.99 KB | None | 0 0
  1. import subprocess
  2. import fcntl
  3. import sys
  4. import os
  5. import select
  6.  
  7. def set_nonblock(f):
  8.     flags = fcntl.fcntl(f, fcntl.F_GETFL)
  9.     fcntl.fcntl(f, fcntl.F_SETFL, flags | os.O_NONBLOCK)
  10.  
  11. def handle(f, name):
  12.     data = f.read()
  13.     sys.stderr.write("read %s: %s\n" % (name, repr(data)))
  14.     if data == "":
  15.         f.close()
  16.  
  17. args = ['/usr/sbin/debootstrap', '--arch=i386', 'trusty', '/tmp/tmpBQAxhc', 'http://archive.ubuntu.com/ubuntu']
  18. stdin_arg = file('/dev/null', 'r')
  19. proc = subprocess.Popen(args, stdin=stdin_arg, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
  20. set_nonblock(proc.stdout)
  21. set_nonblock(proc.stderr)
  22.  
  23. while True:
  24.     fds = []
  25.     if not proc.stdout.closed:
  26.         fds.append(proc.stdout)
  27.     if not proc.stderr.closed:
  28.         fds.append(proc.stderr)
  29.     if not fds:
  30.         break
  31.     ready = select.select(fds, [], [])[0]
  32.     if proc.stdout in ready:
  33.         handle(proc.stdout, "stdout")
  34.     if proc.stderr in ready:
  35.         handle(proc.stderr, "stderr")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement