Perinci::Access::Simple::Server::Socket - Implement Riap::Simple server over sockets
This document describes version 0.21 of Perinci::Access::Simple::Server::Socket (from Perl distribution Perinci-Access-Simple-Server), released on 2015-03-05.
#!/usr/bin/perl use Perinci::Access::Simple::Server::Socket; my $server = Perinci::Access::Simple::Server::Socket->new( ports => ['127.0.0.1:5678'], # default none unix_sockets => ['/var/run/riap-simple.sock'], # default none #start_servers => 0, # default 3, 0=don't prefork #max_clients => 0, # default 3, 0=don't prefork #max_requests_per_child => 100, # default 1000 #daemonize => 1, # default 0 ); $server->run;
Or use using the included peri-sockserve script:
% peri-sockserve -p 127.0.0.1:5678 -s /path/to/unix/sock Foo::Bar Baz::*
This module implements Riap::Simple server over sockets. It features preforking, multiple interface and Unix sockets.
Name of server, for display in process table ('ps ax').
Whether to daemonize (go into background).
Perinci::Access (or compatible) instance.
One or more TCP ports to listen to. Default is none. Each port can be in the form of N, ":N", "0.0.0.0:N" (all means the same thing, to bind to all interfaces) or "1.2.3.4:N" (to bind to a specific network interface).
A string is also accepted, it will be split (delimiter ,) beforehand.
Since server does not support any encryption, it is recommended to bind to localhost (127.0.0.1).
Location of Unix sockets. Default is none, which means not listening to Unix socket. Each element should be an absolute path.
You must at least specify one port or one Unix socket, or server will refuse to run.
Socket timeout. Will be passed to IO::Socket.
Whether to require running as root.
Passed to Proc::Daemon::Prefork's constructor.
Location of PID file.
Location of scoreboard file (used for communication between parent and child processes). If you disable this (by setting scoreboard_path => 0), autoadjusting number of children won't work (number of children will be kept at 'start_servers').
Location of error log. Default is /var/log/<name>-error.log. It will be opened in append mode.
Location of access log. It will be opened in append mode.
Number of children to fork at the start of run. If you set this to 0, the server becomes a nonforking one.
Tip: You can set start_servers to 0 and 'daemonize' to false for debugging.
Maximum number of children processes to maintain. If server is busy, number of children will be increased from the original 'start_servers' up until this value.
Number of requests each child will serve until it exists.
Create a new instance of server. %args can be used to set attributes.
Run server.
Alias for run().
Stop running server.
Restart server.
Check whether server is running.
This is a hook provided for subclasses to do something before the daemon is preforking. For example, you can preload Perl modules here so that each child doesn't have to load modules separately (= inefficient).
Write access log entry.
Riap::Simple, Riap, Rinci
peri-sockserve, simple command-line interface for this module.
Perinci::Access::Simple::Client, Perinci::Access
Please visit the project's homepage at https://metacpan.org/release/Perinci-Access-Simple-Server.
Source repository is at https://github.com/perlancar/perl-Perinci-Access-Simple-Server.
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Perinci-Access-Simple-Server
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
perlancar <perlancar@cpan.org>
This software is copyright (c) 2015 by perlancar@cpan.org.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Perinci::Access::Simple::Server, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Perinci::Access::Simple::Server
CPAN shell
perl -MCPAN -e shell install Perinci::Access::Simple::Server
For more information on module installation, please visit the detailed CPAN module installation guide.