Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add socket activation for systemd and s6 #2346

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

chris2511
Copy link

@chris2511 chris2511 commented Oct 18, 2021

Use open, listening socket file descriptors provided by the service manager
via LISTEN_FDS and LISTEN_PID environment variables.

This is how systemd tells the service about open sockets.
However, this change does not depend on systemd libraries or header.

All sockets must be mentioned exactly (IP:Port / unix-path)
in the mosquitto config file in order to be recognized.
Sockets not mentioned in the config file will be ignored.

The service/systemd directory contains an example (mosquitto.socket).
The service/s6 directory contains examples for the s6 service manager.

The new, builtin websocket mechanism can also use already open sockets.
However, the libwebsocket mchanism can not.

Signed-off-by: Christian Hohnstaedt [email protected]

Thank you for contributing your time to the Mosquitto project!

Before you go any further, please note that we cannot accept contributions if
you haven't signed the Eclipse Contributor Agreement.
If you aren't able to do that, or just don't want to, please describe your bug
fix/feature change in an issue. For simple bug fixes it is can be just as easy
for us to be told about the problem and then go fix it directly.

Then please check the following list of things we ask for in your pull request:

  • Have you signed the Eclipse Contributor Agreement, using the same email address as you used in your commits?
  • Do each of your commits have a "Signed-off-by" line, with the correct email address? Use "git commit -s" to generate this line for you.
  • If you are contributing a new feature, is your work based off the develop branch?
  • Have you added an explanation of what your changes do and why you'd like us to include them?
  • Have you successfully run make test with your changes locally?

Use open, listening socket file descriptors  provided by the service manager
via LISTEN_FDS and LISTEN_PID environment variables.

This is how systemd tells the service about open sockets.
However, this change does not depend on systemd libraries or header.

All sockets must be mentioned exactly (IP:Port / unix-path)
in the mosquitto config file in order to be recognized.
Sockets not mentioned in the config file will be ignored.

The service/systemd directory contains an example (mosquitto.socket).
The service/s6 directory contains examples for the s6 service manager.

The new, builtin websocket mechanism can also use already open sockets.
However, the libwebsocket mchanism can not.

Signed-off-by: Christian Hohnstaedt <[email protected]>
@ralight ralight added this to the 2.1 milestone Nov 15, 2021
@ralight
Copy link
Contributor

ralight commented Nov 15, 2021

Thanks @chris2511, this looks good from an initial look over.

@mprt
Copy link

mprt commented Oct 14, 2022

any update on this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants