[systemd-devel] What is the recommended way of announcing a TCP port?
Kevin P. Fleming
kevin at km6g.us
Tue Jun 15 01:29:15 UTC 2021
You might consider having systemd itself create the listening sockets
and then pass them into the service; if you did that, then systemd
would already know the port number that was allocated for the socket.
On Mon, Jun 14, 2021 at 9:17 PM John Ioannidis <systemd-devel at tla.org> wrote:
>
> I have an instanced service that gets started and stopped by another service: alice.service runs the equivalent of systemsctl start alice at foo.service, systemctl start alice at bar.service, systemctl stop alice at cat.service, and so on.
> Each of the instanced services runs a little http service so its status can be monitored, metrics scraped, etc. The tcp port on which that service runs is just whatever the kernel allocated. I want to export that port number so other processes can find it and use it, for example, by doing the equivalent of systemctl list-units | grep alice@ so they find which instances are actually running, and then going about finding the corresponding ports.
>
> I can think of a number of ad hoc ways:
>
> * they can write the port number in a file like /run/alice/foo.port, /run/alice/bar.port, and whoever is interested can go read those files, in the same way that we use .pid files.
> * They can use systemd-notify to export it as "Status"
> * Using a service discovery mechanism would be an overkill, especially since whatever is actually talking to those ports is on the same host as the services themselves, but that's also a possibility.
>
> Is there a systemd-native way of accomplishing this? It would be nice if it were possible to have user-defined properties that could be set with systemctl set-property, but that is not the case.
>
> Thanks
>
> /ji
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/systemd-devel
More information about the systemd-devel
mailing list