docs: def chrootedSystemCall(chrootDir, cmd, sh=True, mountPseudoFs=True, log=None):
      '''Chrooted version of systemCall. Manages necessary pseudo filesystems.'''
      if log is None:
          log = conduct.app.log
  
      # determine mount points for pseudo fs
      proc = path.join(chrootDir, 'proc')
      sys = path.join(chrootDir, 'sys')
      dev = path.join(chrootDir, 'dev')
      devpts = path.join(chrootDir, 'dev', 'pts')
  
      # mount pseudo fs
      if mountPseudoFs:
          mount('proc', proc, '-t proc')
          mount('/sys', sys, '--rbind')
          mount('/dev', dev, '--rbind')
  
      try:
          # exec chrooted cmd
          log.debug('Execute chrooted command ...')
          cmd = 'chroot %s %s' % (chrootDir, cmd)
          return systemCall(cmd, sh, log)
      finally:
          # umount if pseudo fs was mounted
          if mountPseudoFs:
              # handle devpts
              if path.exists(devpts):
                  umount(devpts, '-lf')
              # lazy is ok for pseudo fs
              umount(dev, '-lf')
              umount(sys, '-lf')
              umount(proc, '-lf')