All modern Unix systems handle a large number of the services they 
run through the super-server inetd or one of its descendants (xinetd, systemd 
etc.) Such a program reads a configuration file (for example /etc/inetd.conf) 
and opens server-sockets on all ports defined in this file. As a request 
comes in it accepts it and starts the associated server such that 
standard I/O is performed through the socket. This approach has several 
advantages:
The very small generic script for handling inetd based connections is 
in inetd_httpd, defining http_server/1:
Here is the example from demo_inetd
#!/usr/bin/pl -t main -q -f
:- use_module(demo_body).
:- use_module(inetd_httpd).
main :-
        http_server(reply).
With the above file installed in /home/jan/plhttp/demo_inetd, 
the following line in /etc/inetd enables the server at port 
4001 guarded by tcpwrappers. After modifying inetd, send the 
daemon the HUP signal to make it reload its configuration. 
For more information, please check inetd.conf(5).
4001 stream tcp nowait nobody /usr/sbin/tcpd /home/jan/plhttp/demo_inetd