Re: Verständnisfrag e socket activation

Andreas Fett <[email protected]> Wed, 31 Jan 2024 01:32:10 +0100
Newsgroups gmane.user-groups.linux.dresden
Message-ID <[email protected]>
Hallo,

On Tue, Jan 30, 2024 at 11:50:37PM +0100, Andreas Roth wrote:
> my-www.socket:
> [Socket]
> ListenStream=80
> BindIPv6Only=both
> 
> [Install]
> WantedBy=sockets.target
> 
> systemctl start my-www.socket
> 
> Wenn ich nun mit z.b. curl auf port 80 zugreife, bekomme ich den Fehler
> 
> Jan 30 23:40:07 docker01 systemd[1]: my-www.socket: Failed with result 'service-start-limit-hit‘.
> 
> Jan 30 23:40:07 docker01 testwebserver[9105]: OSError: [Errno 98] Address already in use
> Jan 30 23:40:07 docker01 systemd[1]: my-www.service: Main process exited, code=exited, status=1/FAILURE
> 
> Der testwebserver Dienst versucht sich auf port 80 zu binden, wo ja bereits der systemd läuft und fällt dann um. 
Ja, das bind(2)  macht systemd, das kannst Du nicht nochmal machen.
Dein Programm bekommt bloss den filedescriptor. Entweder im State "Listen" dann musst Du accept(2)
machen oder nach dem accept
(siehe https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html
- Option Accept=) dann wird eine Instanz pro eingehender Connection gestartet.

Unter
https://www.freedesktop.org/software/systemd/man/latest/sd_listen_fds.html#
findest Du wie Du an den Filedescriptor dran kommst.

Grüsse
Andreas
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEJ6Jq1qpfVQ9CLff4NMc/tuPtDEAFAmW5lQcACgkQNMc/tuPt
DEDY9g//dlTc+sDIP6KWcrl7HwV+IXz9tFB1YBohuoywCBSlSJK5JLwyp3CmRBqD
lW5FTidAK/CfebyyLCoHZVWnfWx3Fcm7+c9zII6W2HOsToWbRU4KfcU1WunNorzP
ExxDT/kX4PrSTGIUPxTBC3re3dCejrYMfS1H4FjHP7meo/62cRMBFePD1vRyBKYw
3r0pHkHif+KE4i2pcyy0ukRGn35J+jHMjf0lWjrqIZX/j42LjXv54euVOp3ZE88x
XNxnlCa6bXuWjAToj8FPt/9ORzpGlHVs0erekRfKWy6lR2uxXXAInl2SJThkzy1X
vc74JKui14ZvDE/HpOEwUsaqjWdbQMK1PFWKF6fySGYmx3/cP40IE4nOM93T9m/h
QTND/1hiOl0oj4Gd010XpoRgrlIcxIYgWA/6M7uxVo3mu8ewNcu0jNbtsCuFW5e9
e5qZ984r8m3tAE0/PoPLZ7301k1YT+PFPXRivF/Vq4zuPv7t8U2rj2Gk31CW7ZcQ
xQf8hZxtjdj4A9/TYhwIuJ/HpHU+QTWiyYKEnDgqJuvYFD5KQa+hB+HJMK+N3yx/
/dN94tTJz1HPeuA+M3S+pPgNcEHFpdhXD691G8TDS4sbNwDkyKpNiypS/UDXWMGS
uYA8v7nOItDYp3pNt7oX1W3RQA5WuMNxH4cVp/6hAhBSSZ+HHDg=
=UjHG
-----END PGP SIGNATURE-----