Python os.O_EXCL Examples
The following are 30
code examples of os.O_EXCL().
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
os
, or try the search function
.
Example #1
Source File: pidlockfile.py From FuYiSpider with Apache License 2.0 | 6 votes |
def write_pid_to_pidfile(pidfile_path): """ Write the PID in the named PID file. Get the numeric process ID (“PID”) of the current process and write it to the named file as a line of text. """ open_flags = (os.O_CREAT | os.O_EXCL | os.O_WRONLY) open_mode = 0o644 pidfile_fd = os.open(pidfile_path, open_flags, open_mode) pidfile = os.fdopen(pidfile_fd, 'w') # According to the FHS 2.3 section on PID files in /var/run: # # The file must consist of the process identifier in # ASCII-encoded decimal, followed by a newline character. For # example, if crond was process number 25, /var/run/crond.pid # would contain three characters: two, five, and newline. pid = os.getpid() pidfile.write("%s\n" % pid) pidfile.close()
Example #2
Source File: pidlockfile.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def write_pid_to_pidfile(pidfile_path): """ Write the PID in the named PID file. Get the numeric process ID (“PID”) of the current process and write it to the named file as a line of text. """ open_flags = (os.O_CREAT | os.O_EXCL | os.O_WRONLY) open_mode = 0o644 pidfile_fd = os.open(pidfile_path, open_flags, open_mode) pidfile = os.fdopen(pidfile_fd, 'w') # According to the FHS 2.3 section on PID files in /var/run: # # The file must consist of the process identifier in # ASCII-encoded decimal, followed by a newline character. For # example, if crond was process number 25, /var/run/crond.pid # would contain three characters: two, five, and newline. pid = os.getpid() pidfile.write("%s\n" % pid) pidfile.close()
Example #3
Source File: pidlockfile.py From hacktoberfest2018 with GNU General Public License v3.0 | 6 votes |
def write_pid_to_pidfile(pidfile_path): """ Write the PID in the named PID file. Get the numeric process ID (“PID”) of the current process and write it to the named file as a line of text. """ open_flags = (os.O_CREAT | os.O_EXCL | os.O_WRONLY) open_mode = 0o644 pidfile_fd = os.open(pidfile_path, open_flags, open_mode) pidfile = os.fdopen(pidfile_fd, 'w') # According to the FHS 2.3 section on PID files in /var/run: # # The file must consist of the process identifier in # ASCII-encoded decimal, followed by a newline character. For # example, if crond was process number 25, /var/run/crond.pid # would contain three characters: two, five, and newline. pid = os.getpid() pidfile.write("%s\n" % pid) pidfile.close()
Example #4
Source File: pidlockfile.py From hacktoberfest2018 with GNU General Public License v3.0 | 6 votes |
def write_pid_to_pidfile(pidfile_path): """ Write the PID in the named PID file. Get the numeric process ID (“PID”) of the current process and write it to the named file as a line of text. """ open_flags = (os.O_CREAT | os.O_EXCL | os.O_WRONLY) open_mode = 0o644 pidfile_fd = os.open(pidfile_path, open_flags, open_mode) pidfile = os.fdopen(pidfile_fd, 'w') # According to the FHS 2.3 section on PID files in /var/run: # # The file must consist of the process identifier in # ASCII-encoded decimal, followed by a newline character. For # example, if crond was process number 25, /var/run/crond.pid # would contain three characters: two, five, and newline. pid = os.getpid() pidfile.write("%s\n" % pid) pidfile.close()
Example #5
Source File: pidlockfile.py From jbox with MIT License | 6 votes |
def write_pid_to_pidfile(pidfile_path): """ Write the PID in the named PID file. Get the numeric process ID (“PID”) of the current process and write it to the named file as a line of text. """ open_flags = (os.O_CREAT | os.O_EXCL | os.O_WRONLY) open_mode = 0o644 pidfile_fd = os.open(pidfile_path, open_flags, open_mode) pidfile = os.fdopen(pidfile_fd, 'w') # According to the FHS 2.3 section on PID files in /var/run: # # The file must consist of the process identifier in # ASCII-encoded decimal, followed by a newline character. For # example, if crond was process number 25, /var/run/crond.pid # would contain three characters: two, five, and newline. pid = os.getpid() pidfile.write("%s\n" % pid) pidfile.close()
Example #6
Source File: pidlockfile.py From recruit with Apache License 2.0 | 6 votes |
def write_pid_to_pidfile(pidfile_path): """ Write the PID in the named PID file. Get the numeric process ID (“PID”) of the current process and write it to the named file as a line of text. """ open_flags = (os.O_CREAT | os.O_EXCL | os.O_WRONLY) open_mode = 0o644 pidfile_fd = os.open(pidfile_path, open_flags, open_mode) pidfile = os.fdopen(pidfile_fd, 'w') # According to the FHS 2.3 section on PID files in /var/run: # # The file must consist of the process identifier in # ASCII-encoded decimal, followed by a newline character. For # example, if crond was process number 25, /var/run/crond.pid # would contain three characters: two, five, and newline. pid = os.getpid() pidfile.write("%s\n" % pid) pidfile.close()
Example #7
Source File: pidlockfile.py From Mastering-Elasticsearch-7.0 with MIT License | 6 votes |
def write_pid_to_pidfile(pidfile_path): """ Write the PID in the named PID file. Get the numeric process ID (“PID”) of the current process and write it to the named file as a line of text. """ open_flags = (os.O_CREAT | os.O_EXCL | os.O_WRONLY) open_mode = 0o644 pidfile_fd = os.open(pidfile_path, open_flags, open_mode) pidfile = os.fdopen(pidfile_fd, 'w') # According to the FHS 2.3 section on PID files in /var/run: # # The file must consist of the process identifier in # ASCII-encoded decimal, followed by a newline character. For # example, if crond was process number 25, /var/run/crond.pid # would contain three characters: two, five, and newline. pid = os.getpid() pidfile.write("%s\n" % pid) pidfile.close()
Example #8
Source File: isolate.py From judge-server with GNU Affero General Public License v3.0 | 6 votes |
def is_write_flags(self, open_flags): for flag in [os.O_WRONLY, os.O_RDWR, os.O_TRUNC, os.O_CREAT, os.O_EXCL, os.O_TMPFILE]: # Strict equality is necessary here, since e.g. O_TMPFILE has multiple bits set, # and O_DIRECTORY & O_TMPFILE > 0. if open_flags & flag == flag: return True return False
Example #9
Source File: pathlib.py From python-netsurv with MIT License | 6 votes |
def create_cleanup_lock(p): """crates a lock to prevent premature folder cleanup""" lock_path = get_lock_path(p) try: fd = os.open(str(lock_path), os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o644) except OSError as e: if e.errno == errno.EEXIST: raise EnvironmentError( "cannot create lockfile in {path}".format(path=p) ) from e else: raise else: pid = os.getpid() spid = str(pid).encode() os.write(fd, spid) os.close(fd) if not lock_path.is_file(): raise EnvironmentError("lock path got renamed after successful creation") return lock_path
Example #10
Source File: pidlockfile.py From GraphicDesignPatternByPython with MIT License | 6 votes |
def write_pid_to_pidfile(pidfile_path): """ Write the PID in the named PID file. Get the numeric process ID (“PID”) of the current process and write it to the named file as a line of text. """ open_flags = (os.O_CREAT | os.O_EXCL | os.O_WRONLY) open_mode = 0o644 pidfile_fd = os.open(pidfile_path, open_flags, open_mode) pidfile = os.fdopen(pidfile_fd, 'w') # According to the FHS 2.3 section on PID files in /var/run: # # The file must consist of the process identifier in # ASCII-encoded decimal, followed by a newline character. For # example, if crond was process number 25, /var/run/crond.pid # would contain three characters: two, five, and newline. pid = os.getpid() pidfile.write("%s\n" % pid) pidfile.close()
Example #11
Source File: nbenv.py From votr with Apache License 2.0 | 6 votes |
def get_login_params(): import getpass import json import os import tempfile filename = os.path.join( tempfile.gettempdir(), 'votrlogin-' + getpass.getuser()) if os.path.exists(filename): with open(filename) as f: return json.load(f) username = input('AIS username: ') password = getpass.getpass('AIS password: ') params = dict(type='cosignpassword', username=username, password=password) fd = os.open(filename, os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o600) with open(fd, 'w') as f: json.dump(params, f) return params
Example #12
Source File: pathlib.py From python-netsurv with MIT License | 6 votes |
def create_cleanup_lock(p): """crates a lock to prevent premature folder cleanup""" lock_path = get_lock_path(p) try: fd = os.open(str(lock_path), os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o644) except OSError as e: if e.errno == errno.EEXIST: raise EnvironmentError( "cannot create lockfile in {path}".format(path=p) ) from e else: raise else: pid = os.getpid() spid = str(pid).encode() os.write(fd, spid) os.close(fd) if not lock_path.is_file(): raise EnvironmentError("lock path got renamed after successful creation") return lock_path
Example #13
Source File: __init__.py From python-netsurv with MIT License | 6 votes |
def touch(self, mode=0o666, exist_ok=True): """ Create this file with the given access mode, if it doesn't exist. """ if self._closed: self._raise_closed() if exist_ok: # First try to bump modification time # Implementation note: GNU touch uses the UTIME_NOW option of # the utimensat() / futimens() functions. try: self._accessor.utime(self, None) except OSError: # Avoid exception chaining pass else: return flags = os.O_CREAT | os.O_WRONLY if not exist_ok: flags |= os.O_EXCL fd = self._raw_open(flags, mode) os.close(fd)
Example #14
Source File: __init__.py From python-netsurv with MIT License | 6 votes |
def touch(self, mode=0o666, exist_ok=True): """ Create this file with the given access mode, if it doesn't exist. """ if self._closed: self._raise_closed() if exist_ok: # First try to bump modification time # Implementation note: GNU touch uses the UTIME_NOW option of # the utimensat() / futimens() functions. try: self._accessor.utime(self, None) except OSError: # Avoid exception chaining pass else: return flags = os.O_CREAT | os.O_WRONLY if not exist_ok: flags |= os.O_EXCL fd = self._raw_open(flags, mode) os.close(fd)
Example #15
Source File: maildir.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def createTempFile(self): """ Create a temporary file to hold the message as it is being transferred. """ attr = (os.O_RDWR | os.O_CREAT | os.O_EXCL | getattr(os, "O_NOINHERIT", 0) | getattr(os, "O_NOFOLLOW", 0)) tries = 0 self.fh = -1 while True: self.tmpname = os.path.join(self.mbox.path, "tmp", _generateMaildirName()) try: self.fh = self.osopen(self.tmpname, attr, 0o600) return None except OSError: tries += 1 if tries > 500: self.defer.errback(RuntimeError("Could not create tmp file for %s" % self.mbox.path)) self.defer = None return None
Example #16
Source File: state.py From hardware with Apache License 2.0 | 6 votes |
def lock(self): '''Lock a file and return a file descriptor. Need to call unlock to release the lock. ''' self._validate_lockname() count = 0 while True: try: self._lock_fd = os.open(self._lockname, os.O_CREAT | os.O_EXCL | os.O_RDWR) break except OSError as xcpt: if xcpt.errno != errno.EEXIST: raise if count % 30 == 0: LOG.debug('waiting for lock %s' % self._lockname) time.sleep(1) count += 1 return self._lock_fd
Example #17
Source File: pidlockfile.py From Mastering-Elasticsearch-7.0 with MIT License | 6 votes |
def write_pid_to_pidfile(pidfile_path): """ Write the PID in the named PID file. Get the numeric process ID (“PID”) of the current process and write it to the named file as a line of text. """ open_flags = (os.O_CREAT | os.O_EXCL | os.O_WRONLY) open_mode = 0o644 pidfile_fd = os.open(pidfile_path, open_flags, open_mode) pidfile = os.fdopen(pidfile_fd, 'w') # According to the FHS 2.3 section on PID files in /var/run: # # The file must consist of the process identifier in # ASCII-encoded decimal, followed by a newline character. For # example, if crond was process number 25, /var/run/crond.pid # would contain three characters: two, five, and newline. pid = os.getpid() pidfile.write("%s\n" % pid) pidfile.close()
Example #18
Source File: __init__.py From pipenv with MIT License | 6 votes |
def touch(self, mode=0o666, exist_ok=True): """ Create this file with the given access mode, if it doesn't exist. """ if self._closed: self._raise_closed() if exist_ok: # First try to bump modification time # Implementation note: GNU touch uses the UTIME_NOW option of # the utimensat() / futimens() functions. try: self._accessor.utime(self, None) except OSError: # Avoid exception chaining pass else: return flags = os.O_CREAT | os.O_WRONLY if not exist_ok: flags |= os.O_EXCL fd = self._raw_open(flags, mode) os.close(fd)
Example #19
Source File: pidlockfile.py From Python24 with MIT License | 6 votes |
def write_pid_to_pidfile(pidfile_path): """ Write the PID in the named PID file. Get the numeric process ID (“PID”) of the current process and write it to the named file as a line of text. """ open_flags = (os.O_CREAT | os.O_EXCL | os.O_WRONLY) open_mode = 0o644 pidfile_fd = os.open(pidfile_path, open_flags, open_mode) pidfile = os.fdopen(pidfile_fd, 'w') # According to the FHS 2.3 section on PID files in /var/run: # # The file must consist of the process identifier in # ASCII-encoded decimal, followed by a newline character. For # example, if crond was process number 25, /var/run/crond.pid # would contain three characters: two, five, and newline. pid = os.getpid() pidfile.write("%s\n" % pid) pidfile.close()
Example #20
Source File: pidlockfile.py From deepWordBug with Apache License 2.0 | 6 votes |
def write_pid_to_pidfile(pidfile_path): """ Write the PID in the named PID file. Get the numeric process ID (“PID”) of the current process and write it to the named file as a line of text. """ open_flags = (os.O_CREAT | os.O_EXCL | os.O_WRONLY) open_mode = 0o644 pidfile_fd = os.open(pidfile_path, open_flags, open_mode) pidfile = os.fdopen(pidfile_fd, 'w') # According to the FHS 2.3 section on PID files in /var/run: # # The file must consist of the process identifier in # ASCII-encoded decimal, followed by a newline character. For # example, if crond was process number 25, /var/run/crond.pid # would contain three characters: two, five, and newline. pid = os.getpid() pidfile.write("%s\n" % pid) pidfile.close()
Example #21
Source File: pidlockfile.py From kobo-predict with BSD 2-Clause "Simplified" License | 6 votes |
def write_pid_to_pidfile(pidfile_path): """ Write the PID in the named PID file. Get the numeric process ID (“PID”) of the current process and write it to the named file as a line of text. """ open_flags = (os.O_CREAT | os.O_EXCL | os.O_WRONLY) open_mode = 0o644 pidfile_fd = os.open(pidfile_path, open_flags, open_mode) pidfile = os.fdopen(pidfile_fd, 'w') # According to the FHS 2.3 section on PID files in /var/run: # # The file must consist of the process identifier in # ASCII-encoded decimal, followed by a newline character. For # example, if crond was process number 25, /var/run/crond.pid # would contain three characters: two, five, and newline. pid = os.getpid() pidfile.write("%s\n" % pid) pidfile.close()
Example #22
Source File: pidlockfile.py From vnpy_crypto with MIT License | 6 votes |
def write_pid_to_pidfile(pidfile_path): """ Write the PID in the named PID file. Get the numeric process ID (“PID”) of the current process and write it to the named file as a line of text. """ open_flags = (os.O_CREAT | os.O_EXCL | os.O_WRONLY) open_mode = 0o644 pidfile_fd = os.open(pidfile_path, open_flags, open_mode) pidfile = os.fdopen(pidfile_fd, 'w') # According to the FHS 2.3 section on PID files in /var/run: # # The file must consist of the process identifier in # ASCII-encoded decimal, followed by a newline character. For # example, if crond was process number 25, /var/run/crond.pid # would contain three characters: two, five, and newline. pid = os.getpid() pidfile.write("%s\n" % pid) pidfile.close()
Example #23
Source File: file.py From celery-once with BSD 2-Clause "Simplified" License | 6 votes |
def raise_or_lock(self, key, timeout): """ Check the lock file and create one if it does not exist. """ lock_path = self._get_lock_path(key) try: # Create lock file, raise exception if it exists fd = os.open(lock_path, os.O_CREAT | os.O_EXCL) except OSError as error: if error.errno == errno.EEXIST: # File already exists, check its modification time mtime = os.path.getmtime(lock_path) ttl = mtime + timeout - time.time() if ttl > 0: raise AlreadyQueued(ttl) else: # Update modification time if timeout happens os.utime(lock_path, None) return else: # Re-raise unexpected OSError raise else: os.close(fd)
Example #24
Source File: pidlockfile.py From FuYiSpider with Apache License 2.0 | 6 votes |
def write_pid_to_pidfile(pidfile_path): """ Write the PID in the named PID file. Get the numeric process ID (“PID”) of the current process and write it to the named file as a line of text. """ open_flags = (os.O_CREAT | os.O_EXCL | os.O_WRONLY) open_mode = 0o644 pidfile_fd = os.open(pidfile_path, open_flags, open_mode) pidfile = os.fdopen(pidfile_fd, 'w') # According to the FHS 2.3 section on PID files in /var/run: # # The file must consist of the process identifier in # ASCII-encoded decimal, followed by a newline character. For # example, if crond was process number 25, /var/run/crond.pid # would contain three characters: two, five, and newline. pid = os.getpid() pidfile.write("%s\n" % pid) pidfile.close()
Example #25
Source File: test_file.py From celery-once with BSD 2-Clause "Simplified" License | 6 votes |
def test_file_create_lock(backend, mocker): key = 'test.task.key' timeout = 3600 open_mock = mocker.patch('celery_once.backends.file.os.open') mtime_mock = mocker.patch('celery_once.backends.file.os.path.getmtime') utime_mock = mocker.patch('celery_once.backends.file.os.utime') close_mock = mocker.patch('celery_once.backends.file.os.close') expected_lock_path = os.path.join(TEST_LOCATION, key_to_lock_name(key)) ret = backend.raise_or_lock(key, timeout) assert open_mock.call_count == 1 assert open_mock.call_args[0] == ( expected_lock_path, os.O_CREAT | os.O_EXCL, ) assert utime_mock.called is False assert close_mock.called is True assert ret is None
Example #26
Source File: pidlockfile.py From anpr with Creative Commons Attribution 4.0 International | 6 votes |
def write_pid_to_pidfile(pidfile_path): """ Write the PID in the named PID file. Get the numeric process ID (“PID”) of the current process and write it to the named file as a line of text. """ open_flags = (os.O_CREAT | os.O_EXCL | os.O_WRONLY) open_mode = 0o644 pidfile_fd = os.open(pidfile_path, open_flags, open_mode) pidfile = os.fdopen(pidfile_fd, 'w') # According to the FHS 2.3 section on PID files in /var/run: # # The file must consist of the process identifier in # ASCII-encoded decimal, followed by a newline character. For # example, if crond was process number 25, /var/run/crond.pid # would contain three characters: two, five, and newline. pid = os.getpid() pidfile.write("%s\n" % pid) pidfile.close()
Example #27
Source File: unix.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def __init__(self, server, filename, flags, attrs): self.server = server openFlags = 0 if flags & FXF_READ == FXF_READ and flags & FXF_WRITE == 0: openFlags = os.O_RDONLY if flags & FXF_WRITE == FXF_WRITE and flags & FXF_READ == 0: openFlags = os.O_WRONLY if flags & FXF_WRITE == FXF_WRITE and flags & FXF_READ == FXF_READ: openFlags = os.O_RDWR if flags & FXF_APPEND == FXF_APPEND: openFlags |= os.O_APPEND if flags & FXF_CREAT == FXF_CREAT: openFlags |= os.O_CREAT if flags & FXF_TRUNC == FXF_TRUNC: openFlags |= os.O_TRUNC if flags & FXF_EXCL == FXF_EXCL: openFlags |= os.O_EXCL if "permissions" in attrs: mode = attrs["permissions"] del attrs["permissions"] else: mode = 0o777 fd = server.avatar._runAsUser(os.open, filename, openFlags, mode) if attrs: server.avatar._runAsUser(server._setAttrs, filename, attrs) self.fd = fd
Example #28
Source File: filesystem.py From pex with Apache License 2.0 | 5 votes |
def _test_writable_dir_win(path): # type: (str) -> bool # os.access doesn't work on Windows: http://bugs.python.org/issue2528 # and we can't use tempfile: http://bugs.python.org/issue22107 basename = 'accesstest_deleteme_fishfingers_custard_' alphabet = 'abcdefghijklmnopqrstuvwxyz0123456789' for i in range(10): name = basename + ''.join(random.choice(alphabet) for _ in range(6)) file = os.path.join(path, name) try: fd = os.open(file, os.O_RDWR | os.O_CREAT | os.O_EXCL) except OSError as e: if e.errno == errno.EEXIST: continue if e.errno == errno.EPERM: # This could be because there's a directory with the same name. # But it's highly unlikely there's a directory called that, # so we'll assume it's because the parent dir is not writable. return False raise else: os.close(fd) os.unlink(file) return True # This should never be reached raise EnvironmentError( 'Unexpected condition testing for writable directory' )
Example #29
Source File: filesystem.py From pipenv with MIT License | 5 votes |
def _test_writable_dir_win(path): # type: (str) -> bool # os.access doesn't work on Windows: http://bugs.python.org/issue2528 # and we can't use tempfile: http://bugs.python.org/issue22107 basename = 'accesstest_deleteme_fishfingers_custard_' alphabet = 'abcdefghijklmnopqrstuvwxyz0123456789' for i in range(10): name = basename + ''.join(random.choice(alphabet) for _ in range(6)) file = os.path.join(path, name) try: fd = os.open(file, os.O_RDWR | os.O_CREAT | os.O_EXCL) except OSError as e: if e.errno == errno.EEXIST: continue if e.errno == errno.EPERM: # This could be because there's a directory with the same name. # But it's highly unlikely there's a directory called that, # so we'll assume it's because the parent dir is not writable. return False raise else: os.close(fd) os.unlink(file) return True # This should never be reached raise EnvironmentError( 'Unexpected condition testing for writable directory' )
Example #30
Source File: server.py From pysftpserver with MIT License | 5 votes |
def new_handle(self, filename, flags=0, attrs=dict(), is_opendir=False): if is_opendir: handle = self.storage.opendir(filename) else: os_flags = 0x00000000 if flags & SSH2_FXF_READ and flags & SSH2_FXF_WRITE: os_flags |= os.O_RDWR elif flags & SSH2_FXF_READ: os_flags |= os.O_RDONLY elif flags & SSH2_FXF_WRITE: os_flags |= os.O_WRONLY if flags & SSH2_FXF_APPEND: os_flags |= os.O_APPEND if flags & SSH2_FXF_CREAT: os_flags |= os.O_CREAT if flags & SSH2_FXF_TRUNC and flags & SSH2_FXF_CREAT: os_flags |= os.O_TRUNC if flags & SSH2_FXF_EXCL and flags & SSH2_FXF_CREAT: os_flags |= os.O_EXCL mode = attrs.get(b'perm', 0o666) handle = self.storage.open(filename, os_flags, mode) if self.handle_cnt == 0xffffffffffffffff: raise OverflowError() self.handle_cnt += 1 handle_id = bytes(self.handle_cnt) self.handles[handle_id] = handle if is_opendir: self.dirs[handle_id] = filename else: self.files[handle_id] = filename return handle_id