Python pty.STDERR_FILENO Examples

The following are 3 code examples of pty.STDERR_FILENO(). You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may also want to check out all available functions/classes of the module pty , or try the search function .
Example #1
Source File: __init__.py    From camr with GNU General Public License v2.0 5 votes vote down vote up
def __fork_pty(self):
        '''This implements a substitute for the forkpty system call. This
        should be more portable than the pty.fork() function. Specifically,
        this should work on Solaris.

        Modified 10.06.05 by Geoff Marshall: Implemented __fork_pty() method to
        resolve the issue with Python's pty.fork() not supporting Solaris,
        particularly ssh. Based on patch to posixmodule.c authored by Noah
        Spurrier::

            http://mail.python.org/pipermail/python-dev/2003-May/035281.html

        '''

        parent_fd, child_fd = os.openpty()
        if parent_fd < 0 or child_fd < 0:
            raise ExceptionPexpect("Could not open with os.openpty().")

        pid = os.fork()
        if pid == pty.CHILD:
            # Child.
            os.close(parent_fd)
            self.__pty_make_controlling_tty(child_fd)

            os.dup2(child_fd, self.STDIN_FILENO)
            os.dup2(child_fd, self.STDOUT_FILENO)
            os.dup2(child_fd, self.STDERR_FILENO)

        else:
            # Parent.
            os.close(child_fd)

        return pid, parent_fd 
Example #2
Source File: sandbox.py    From jd4 with GNU Affero General Public License v3.0 5 votes vote down vote up
def _handle_compile(compiler_file, compiler_args, output_file, cgroup_file):
    pid = fork()
    if not pid:
        chdir('/out')
        os_close(STDIN_FILENO)
        if output_file:
            fd = os_open(output_file, O_WRONLY)
            dup2(fd, STDOUT_FILENO)
            dup2(fd, STDERR_FILENO)
            os_close(fd)
        if cgroup_file:
            enter_cgroup(cgroup_file)
        execve(compiler_file, compiler_args, SPAWN_ENV)
    return wait_and_reap_zombies(pid) 
Example #3
Source File: sandbox.py    From jd4 with GNU Affero General Public License v3.0 5 votes vote down vote up
def _handle_execute(execute_file,
                    execute_args,
                    stdin_file,
                    stdout_file,
                    stderr_file,
                    extra_file,
                    cgroup_file):
    pid = fork()
    if not pid:
        chdir('/in/package')
        if stdin_file:
            fd = os_open(stdin_file, O_RDONLY)
            dup2(fd, STDIN_FILENO)
            os_close(fd)
        if stdout_file:
            fd = os_open(stdout_file, O_WRONLY)
            dup2(fd, STDOUT_FILENO)
            os_close(fd)
        if stderr_file:
            fd = os_open(stderr_file, O_WRONLY)
            dup2(fd, STDERR_FILENO)
            os_close(fd)
        if extra_file:
            fd = os_open(extra_file, O_RDONLY)
            if fd == EXTRA_FILENO:
                set_inheritable(fd, True)
            else:
                dup2(fd, EXTRA_FILENO)
                os_close(fd)
        if cgroup_file:
            enter_cgroup(cgroup_file)
        execve(execute_file, execute_args, SPAWN_ENV)
    return wait_and_reap_zombies(pid)