Python fcntl.F_GETFD Examples
The following are 30
code examples of fcntl.F_GETFD().
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
fcntl
, or try the search function
.
Example #1
Source File: wspbus.py From cherrypy with BSD 3-Clause "New" or "Revised" License | 7 votes |
def _set_cloexec(self): """Set the CLOEXEC flag on all open files (except stdin/out/err). If self.max_cloexec_files is an integer (the default), then on platforms which support it, it represents the max open files setting for the operating system. This function will be called just before the process is restarted via os.execv() to prevent open files from persisting into the new process. Set self.max_cloexec_files to 0 to disable this behavior. """ for fd in range(3, self.max_cloexec_files): # skip stdin/out/err try: flags = fcntl.fcntl(fd, fcntl.F_GETFD) except IOError: continue fcntl.fcntl(fd, fcntl.F_SETFD, flags | fcntl.FD_CLOEXEC)
Example #2
Source File: daemonize.py From pykit with MIT License | 6 votes |
def write_pid_or_exit(self): self.pf = open(self.pidfile, 'w+r') pf = self.pf fd = pf.fileno() fcntl.fcntl(fd, fcntl.F_SETFD, fcntl.fcntl(fd, fcntl.F_GETFD, 0) | fcntl.FD_CLOEXEC) try: pid = os.getpid() logger.debug('write pid:' + str(pid)) pf.truncate(0) pf.write(str(pid)) pf.flush() except Exception as e: logger.exception('write pid failed.' + repr(e)) sys.exit(0)
Example #3
Source File: ipc.py From hupper with MIT License | 6 votes |
def set_inheritable(fd, inheritable): # On py34+ we can use os.set_inheritable but < py34 we must polyfill # with fcntl and SetHandleInformation if hasattr(os, 'get_inheritable'): if os.get_inheritable(fd) != inheritable: os.set_inheritable(fd, inheritable) elif WIN: h = get_handle(fd) flags = winapi.HANDLE_FLAG_INHERIT if inheritable else 0 winapi.SetHandleInformation(h, winapi.HANDLE_FLAG_INHERIT, flags) else: flags = fcntl.fcntl(fd, fcntl.F_GETFD) if inheritable: new_flags = flags & ~fcntl.FD_CLOEXEC else: new_flags = flags | fcntl.FD_CLOEXEC if new_flags != flags: fcntl.fcntl(fd, fcntl.F_SETFD, new_flags)
Example #4
Source File: syscall.py From miasm with GNU General Public License v2.0 | 6 votes |
def sys_generic_fcntl64(jitter, linux_env): # Parse arguments fd, cmd, arg = jitter.syscall_args_systemv(3) log.debug("sys_fcntl(%x, %x, %x)", fd, cmd, arg) # Stub fdesc = linux_env.file_descriptors[fd] if cmd == fcntl.F_GETFL: jitter.syscall_ret_systemv(fdesc.flags) elif cmd == fcntl.F_SETFL: # Ignore flag change jitter.syscall_ret_systemv(0) elif cmd == fcntl.F_GETFD: jitter.syscall_ret_systemv(fdesc.flags) elif cmd == fcntl.F_SETFD: # Ignore flag change jitter.syscall_ret_systemv(0) else: raise RuntimeError("Not implemented")
Example #5
Source File: SimpleXMLRPCServer.py From pmatic with GNU General Public License v2.0 | 5 votes |
def __init__(self, addr, requestHandler=SimpleXMLRPCRequestHandler, logRequests=True, allow_none=False, encoding=None, bind_and_activate=True): self.logRequests = logRequests SimpleXMLRPCDispatcher.__init__(self, allow_none, encoding) SocketServer.TCPServer.__init__(self, addr, requestHandler, bind_and_activate) # [Bug #1222790] If possible, set close-on-exec flag; if a # method spawns a subprocess, the subprocess shouldn't have # the listening socket open. if fcntl is not None and hasattr(fcntl, 'FD_CLOEXEC'): flags = fcntl.fcntl(self.fileno(), fcntl.F_GETFD) flags |= fcntl.FD_CLOEXEC fcntl.fcntl(self.fileno(), fcntl.F_SETFD, flags)
Example #6
Source File: fdesc.py From learn_python3_spider with MIT License | 5 votes |
def _unsetCloseOnExec(fd): """ Make a file descriptor close-on-exec. """ flags = fcntl.fcntl(fd, fcntl.F_GETFD) flags = flags & ~fcntl.FD_CLOEXEC fcntl.fcntl(fd, fcntl.F_SETFD, flags)
Example #7
Source File: pipe_notifier.py From PySyncObj with MIT License | 5 votes |
def __init__(self, poller, callback = None): self.__callback = callback self.__pipeR, self.__pipeW = os.pipe() flag = fcntl.fcntl(self.__pipeR, fcntl.F_GETFD) fcntl.fcntl(self.__pipeR, fcntl.F_SETFL, flag | os.O_NONBLOCK) flag = fcntl.fcntl(self.__pipeW, fcntl.F_GETFD) fcntl.fcntl(self.__pipeW, fcntl.F_SETFL, flag | os.O_NONBLOCK) poller.subscribe(self.__pipeR, self.__onNewNotification, POLL_EVENT_TYPE.READ)
Example #8
Source File: fdesc.py From learn_python3_spider with MIT License | 5 votes |
def _setCloseOnExec(fd): """ Make a file descriptor close-on-exec. """ flags = fcntl.fcntl(fd, fcntl.F_GETFD) flags = flags | fcntl.FD_CLOEXEC fcntl.fcntl(fd, fcntl.F_SETFD, flags)
Example #9
Source File: run.py From 12306-booking with MIT License | 5 votes |
def _query_left_ticket_counter_get(): if not os.path.exists(settings.QUERY_LEFT_TICKET_COUNTER_FILE): return 0 with open(settings.QUERY_LEFT_TICKET_COUNTER_FILE) as f: flag = fcntl.fcntl(f.fileno(), fcntl.F_GETFD) fcntl.fcntl(f, fcntl.F_SETFD, flag | os.O_NONBLOCK) flag = fcntl.fcntl(f, fcntl.F_GETFD) counter = f.read() return int(counter)
Example #10
Source File: daemon.py From ShadowsocksFork with Apache License 2.0 | 5 votes |
def write_pid_file(pid_file, pid): import fcntl import stat try: fd = os.open(pid_file, os.O_RDWR | os.O_CREAT, stat.S_IRUSR | stat.S_IWUSR) except OSError as e: shell.print_exception(e) return -1 flags = fcntl.fcntl(fd, fcntl.F_GETFD) assert flags != -1 flags |= fcntl.FD_CLOEXEC r = fcntl.fcntl(fd, fcntl.F_SETFD, flags) assert r != -1 # There is no platform independent way to implement fcntl(fd, F_SETLK, &fl) # via fcntl.fcntl. So use lockf instead try: fcntl.lockf(fd, fcntl.LOCK_EX | fcntl.LOCK_NB, 0, 0, os.SEEK_SET) except IOError: r = os.read(fd, 32) if r: logging.error('already started at pid %s' % common.to_str(r)) else: logging.error('already started') os.close(fd) return -1 os.ftruncate(fd, 0) os.write(fd, common.to_bytes(str(pid))) return 0
Example #11
Source File: posix.py From pySINDy with MIT License | 5 votes |
def set_close_exec(fd): flags = fcntl.fcntl(fd, fcntl.F_GETFD) fcntl.fcntl(fd, fcntl.F_SETFD, flags | fcntl.FD_CLOEXEC)
Example #12
Source File: posix.py From pySINDy with MIT License | 5 votes |
def set_close_exec(fd): flags = fcntl.fcntl(fd, fcntl.F_GETFD) fcntl.fcntl(fd, fcntl.F_SETFD, flags | fcntl.FD_CLOEXEC)
Example #13
Source File: server.py From telegram-robot-rss with Mozilla Public License 2.0 | 5 votes |
def __init__(self, addr, requestHandler=SimpleXMLRPCRequestHandler, logRequests=True, allow_none=False, encoding=None, bind_and_activate=True, use_builtin_types=False): self.logRequests = logRequests SimpleXMLRPCDispatcher.__init__(self, allow_none, encoding, use_builtin_types) socketserver.TCPServer.__init__(self, addr, requestHandler, bind_and_activate) # [Bug #1222790] If possible, set close-on-exec flag; if a # method spawns a subprocess, the subprocess shouldn't have # the listening socket open. if fcntl is not None and hasattr(fcntl, 'FD_CLOEXEC'): flags = fcntl.fcntl(self.fileno(), fcntl.F_GETFD) flags |= fcntl.FD_CLOEXEC fcntl.fcntl(self.fileno(), fcntl.F_SETFD, flags)
Example #14
Source File: proctools.py From pycopia with Apache License 2.0 | 5 votes |
def close_on_exec(fd): flags = fcntl.fcntl(fd, fcntl.F_GETFD) flags |= fcntl.FD_CLOEXEC fcntl.fcntl(fd, fcntl.F_SETFD, flags)
Example #15
Source File: wsgiserver2.py From Hatkey with GNU General Public License v3.0 | 5 votes |
def prevent_socket_inheritance(sock): """Mark the given socket fd as non-inheritable (POSIX).""" fd = sock.fileno() old_flags = fcntl.fcntl(fd, fcntl.F_GETFD) fcntl.fcntl(fd, fcntl.F_SETFD, old_flags | fcntl.FD_CLOEXEC)
Example #16
Source File: wsgiserver3.py From Hatkey with GNU General Public License v3.0 | 5 votes |
def prevent_socket_inheritance(sock): """Mark the given socket fd as non-inheritable (POSIX).""" fd = sock.fileno() old_flags = fcntl.fcntl(fd, fcntl.F_GETFD) fcntl.fcntl(fd, fcntl.F_SETFD, old_flags | fcntl.FD_CLOEXEC)
Example #17
Source File: subprocess.py From pmatic with GNU General Public License v2.0 | 5 votes |
def _set_cloexec_flag(self, fd, cloexec=True): try: cloexec_flag = fcntl.FD_CLOEXEC except AttributeError: cloexec_flag = 1 old = fcntl.fcntl(fd, fcntl.F_GETFD) if cloexec: fcntl.fcntl(fd, fcntl.F_SETFD, old | cloexec_flag) else: fcntl.fcntl(fd, fcntl.F_SETFD, old & ~cloexec_flag)
Example #18
Source File: fdesc.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def _setCloseOnExec(fd): """ Make a file descriptor close-on-exec. """ flags = fcntl.fcntl(fd, fcntl.F_GETFD) flags = flags | fcntl.FD_CLOEXEC fcntl.fcntl(fd, fcntl.F_SETFD, flags)
Example #19
Source File: tempfile.py From pmatic with GNU General Public License v2.0 | 5 votes |
def _set_cloexec(fd): try: flags = _fcntl.fcntl(fd, _fcntl.F_GETFD, 0) except IOError: pass else: # flags read successfully, modify flags |= _fcntl.FD_CLOEXEC _fcntl.fcntl(fd, _fcntl.F_SETFD, flags)
Example #20
Source File: asyncio.py From pycopia with Apache License 2.0 | 5 votes |
def __init__(self): self.smap = {} self._fd_callbacks = {} self._idle_callbacks = {} self._idle_handle = 0 self.pollster = select.epoll() self.closed = False fd = self.pollster.fileno() flags = fcntl.fcntl(fd, fcntl.F_GETFD) flags |= fcntl.FD_CLOEXEC fcntl.fcntl(fd, fcntl.F_SETFD, flags)
Example #21
Source File: daemonize.py From pykit with MIT License | 5 votes |
def trylock_or_exit(self, timeout=10): interval = 0.1 n = int(timeout / interval) + 1 flag = fcntl.LOCK_EX | fcntl.LOCK_NB for ii in range(n): fd = os.open(self.lockfile, os.O_RDWR | os.O_CREAT) fcntl.fcntl(fd, fcntl.F_SETFD, fcntl.fcntl(fd, fcntl.F_GETFD, 0) | fcntl.FD_CLOEXEC) try: fcntl.lockf(fd, flag) self.lockfp = os.fdopen(fd, 'w+r') break except IOError as e: os.close(fd) if e[0] == errno.EAGAIN: time.sleep(interval) else: raise else: logger.info("Failure acquiring lock %s" % (self.lockfile, )) sys.exit(1) logger.info("OK acquired lock %s" % (self.lockfile))
Example #22
Source File: client.py From qubes-core-admin with GNU Lesser General Public License v2.1 | 5 votes |
def request_memory(self, amount): self.sock = socket.socket(socket.AF_UNIX) flags = fcntl.fcntl(self.sock.fileno(), fcntl.F_GETFD) flags |= fcntl.FD_CLOEXEC fcntl.fcntl(self.sock.fileno(), fcntl.F_SETFD, flags) self.sock.connect("/var/run/qubes/qmemman.sock") self.sock.send(str(int(amount)).encode('ascii')+b"\n") received = self.sock.recv(1024).strip() if received == b'OK': return True else: return False
Example #23
Source File: server.py From deepWordBug with Apache License 2.0 | 5 votes |
def __init__(self, addr, requestHandler=SimpleXMLRPCRequestHandler, logRequests=True, allow_none=False, encoding=None, bind_and_activate=True, use_builtin_types=False): self.logRequests = logRequests SimpleXMLRPCDispatcher.__init__(self, allow_none, encoding, use_builtin_types) socketserver.TCPServer.__init__(self, addr, requestHandler, bind_and_activate) # [Bug #1222790] If possible, set close-on-exec flag; if a # method spawns a subprocess, the subprocess shouldn't have # the listening socket open. if fcntl is not None and hasattr(fcntl, 'FD_CLOEXEC'): flags = fcntl.fcntl(self.fileno(), fcntl.F_GETFD) flags |= fcntl.FD_CLOEXEC fcntl.fcntl(self.fileno(), fcntl.F_SETFD, flags)
Example #24
Source File: posix.py From teleport with Apache License 2.0 | 5 votes |
def set_close_exec(fd: int) -> None: flags = fcntl.fcntl(fd, fcntl.F_GETFD) fcntl.fcntl(fd, fcntl.F_SETFD, flags | fcntl.FD_CLOEXEC)
Example #25
Source File: posix.py From teleport with Apache License 2.0 | 5 votes |
def set_close_exec(fd: int) -> None: flags = fcntl.fcntl(fd, fcntl.F_GETFD) fcntl.fcntl(fd, fcntl.F_SETFD, flags | fcntl.FD_CLOEXEC)
Example #26
Source File: posix.py From teleport with Apache License 2.0 | 5 votes |
def set_close_exec(fd): flags = fcntl.fcntl(fd, fcntl.F_GETFD) fcntl.fcntl(fd, fcntl.F_SETFD, flags | fcntl.FD_CLOEXEC)
Example #27
Source File: subprocess.py From satori with Apache License 2.0 | 5 votes |
def _set_cloexec_flag(self, fd, cloexec=True): try: cloexec_flag = fcntl.FD_CLOEXEC except AttributeError: cloexec_flag = 1 old = fcntl.fcntl(fd, fcntl.F_GETFD) if cloexec: fcntl.fcntl(fd, fcntl.F_SETFD, old | cloexec_flag) else: fcntl.fcntl(fd, fcntl.F_SETFD, old & ~cloexec_flag)
Example #28
Source File: _scons_subprocess.py From pivy with ISC License | 5 votes |
def _set_cloexec_flag(self, fd): try: cloexec_flag = fcntl.FD_CLOEXEC except AttributeError: cloexec_flag = 1 old = fcntl.fcntl(fd, fcntl.F_GETFD) fcntl.fcntl(fd, fcntl.F_SETFD, old | cloexec_flag)
Example #29
Source File: fdesc.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def _unsetCloseOnExec(fd): """ Make a file descriptor close-on-exec. """ flags = fcntl.fcntl(fd, fcntl.F_GETFD) flags = flags & ~fcntl.FD_CLOEXEC fcntl.fcntl(fd, fcntl.F_SETFD, flags)
Example #30
Source File: _pydev_SimpleXMLRPCServer.py From PyDev.Debugger with Eclipse Public License 1.0 | 5 votes |
def __init__(self, addr, requestHandler=SimpleXMLRPCRequestHandler, logRequests=True, allow_none=False, encoding=None): self.logRequests = logRequests SimpleXMLRPCDispatcher.__init__(self, allow_none, encoding) SocketServer.TCPServer.__init__(self, addr, requestHandler) # [Bug #1222790] If possible, set close-on-exec flag; if a # method spawns a subprocess, the subprocess shouldn't have # the listening socket open. if fcntl is not None and hasattr(fcntl, 'FD_CLOEXEC'): flags = fcntl.fcntl(self.fileno(), fcntl.F_GETFD) flags |= fcntl.FD_CLOEXEC fcntl.fcntl(self.fileno(), fcntl.F_SETFD, flags)