Socket server implementation that works with systemd socket activation
Project description
systemd-socketserver
systemd-socketserver is a simple Python 3 package that provides the SystemdSocketServer class,
a socket server implementation that works in tandem with systemd's socket activation feature.
Very useful for writing basic socket activated daemons.
Installation
Install from PyPi:
pip install systemd-socketserver
Or clone from Git and install from source:
setup.py install
Basic Usage
For a full example see the example directory.
The following Python module, when activated via .socket unit, will echo the first sent line to the socket
then disconnect.
class EchoHandler(socketserver.StreamRequestHandler):
def handle(self):
self.data = self.rfile.readline()
self.wfile.write(self.data.upper())
server = systemd_socketserver.listen_server(EchoHandler)
if server is None:
print('this example only supports socket activation', file=sys.stderr)
return
server.listen_forever()
Features:
-
Supports and auto detects both listen and accept sockets (
Accept=true|falsein the.socketunit) -
Supports named file descriptors, making it easy to bind different handlers to different sockets.
This feature relies on functionality currently not present in the most recent package release of python-systemd, namely the
listen_fds_with_namesfunction. Callinglisten_servers_with_nameswill throw aNotImplementedExceptionin this case.Building python-systemd from source will include support for
listen_fds_with_namesand hence this feature will work.For an example of this functionality see the code in the
exampledirectory.
Known Limitations
- This module has only been tested with INET sockets.
- Better documentation TODO.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file systemd_socketserver-1.0-py3-none-any.whl.
File metadata
- Download URL: systemd_socketserver-1.0-py3-none-any.whl
- Upload date:
- Size: 3.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
987a8bfbf28d959e7c2966c742ad7bad482f05e121077defcf95bb38267db9a8
|
|
| MD5 |
904425e052f469408fb8d42195af988e
|
|
| BLAKE2b-256 |
d84fb28b7f08880120a26669b080ca74487c8c67e8b54dcb0467a8f0c9f38ed6
|