diff options
| author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2015-07-05 14:16:08 -0400 |
|---|---|---|
| committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2015-07-05 14:19:22 -0400 |
| commit | 022c9b5be4a1edf77bf73566a89ce41397f72147 (patch) | |
| tree | bfbb6fa60200df1edca05a5856810ad257114076 /systemd/daemon.py | |
| parent | 5f531b971e8c75cd9c93044dcdd46880c65d0502 (diff) | |
| parent | 2a3fc158a5160e8da77852fc71ee49c6f359fd56 (diff) | |
| download | python-systemd-022c9b5be4a1edf77bf73566a89ce41397f72147.tar.gz | |
Merge development in systemd upstream
Diffstat (limited to 'systemd/daemon.py')
| -rw-r--r-- | systemd/daemon.py | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/systemd/daemon.py b/systemd/daemon.py new file mode 100644 index 0000000..82011ca --- /dev/null +++ b/systemd/daemon.py @@ -0,0 +1,55 @@ +from ._daemon import (__version__, + booted, + notify, + _listen_fds, + _is_fifo, + _is_socket, + _is_socket_inet, + _is_socket_unix, + _is_mq, + LISTEN_FDS_START) +from socket import AF_UNSPEC as _AF_UNSPEC + +def _convert_fileobj(fileobj): + try: + return fileobj.fileno() + except AttributeError: + return fileobj + +def is_fifo(fileobj, path=None): + fd = _convert_fileobj(fileobj) + return _is_fifo(fd, path) + +def is_socket(fileobj, family=_AF_UNSPEC, type=0, listening=-1): + fd = _convert_fileobj(fileobj) + return _is_socket(fd, family, type, listening) + +def is_socket_inet(fileobj, family=_AF_UNSPEC, type=0, listening=-1, port=0): + fd = _convert_fileobj(fileobj) + return _is_socket_inet(fd, family, type, listening, port) + +def is_socket_unix(fileobj, type=0, listening=-1, path=None): + fd = _convert_fileobj(fileobj) + return _is_socket_unix(fd, type, listening, path) + +def is_mq(fileobj, path=None): + fd = _convert_fileobj(fileobj) + return _is_mq(fd, path) + +def listen_fds(unset_environment=True): + """Return a list of socket activated descriptors + + Example:: + + (in primary window) + $ systemd-activate -l 2000 python3 -c \\ + 'from systemd.daemon import listen_fds; print(listen_fds())' + (in another window) + $ telnet localhost 2000 + (in primary window) + ... + Execing python3 (...) + [3] + """ + num = _listen_fds(unset_environment) + return list(range(LISTEN_FDS_START, LISTEN_FDS_START + num)) |
