Net::Server::Fork(3)

πŸ’– NAME πŸ’–

okay so Net::Server::Fork is a Net::Server personality β€” and hiiii bestie, welcome to the Net::Server::Fork(3) page from the User Contributed Perl Documentation. This is the fork-y server personality chapter, and it's giving main character energy. πŸ¦‹

✨ SYNOPSIS ✨

use base qw(Net::Server::Fork);

sub process_request {
    #...code...
}

__PACKAGE__->run();

🌸 DESCRIPTION 🌸

Please read the pod on Net::Server first β€” fr fr, start there. This module is a personality, or extension, or sub class, of the Net::Server module. πŸ’…

This personality binds to one or more ports and then waits for a client connection. When a connection is received, the server forks a child. The child handles the request and then closes. πŸŽ€

With the exception of parent/child signaling, this module will work (with basic functionality) on Win32 systems. iykyk ✨

πŸŽ€ ARGUMENTS πŸŽ€

  • check_for_dead β€” Number of seconds to wait before looking for dead children. This only takes place if the maximum number of child processes (max_servers) has been reached. Default is 60 seconds. ⏳
  • max_servers β€” The maximum number of children to fork. The server will not accept connections until there are free children. Default is 256 children. πŸ‘‘
  • max_dequeue β€” The maximum number of dequeue processes to start. If a value of zero or undef is given, no dequeue processes will be started. The number of running dequeue processes will be checked by the check_for_dead variable. 🧚
  • check_for_dequeue β€” Seconds to wait before forking off a dequeue process. It is intended to use the dequeue process to take care of items such as mail queues. If a value of undef is given, no dequeue processes will be started. πŸ’Œ

🫢 CONFIGURATION FILE 🫢

See Net::Server. That's where the config-file lore lives, bestie. 🌈

πŸ”₯ PROCESS FLOW πŸ”₯

Process flow follows Net::Server until the post_accept phase. At this point a child is forked. The parent is immediately able to wait for another request. The child handles the request and then exits. πŸƒβ€β™€οΈπŸ’¨

🌈 HOOKS 🌈

The Fork server has the following hooks in addition to the hooks provided by the Net::Server base class. See Net::Server.

  • $self->pre_accept_hook() β€” This hook occurs just before the accept is called. πŸ‘€
  • $self->post_accept_hook() β€” This hook occurs in the child after the accept and fork. πŸ“
  • $self->run_dequeue() β€” This hook only gets called in conjunction with the check_for_dequeue setting. πŸŽ€

πŸ’œ HOT DEPLOY πŸ’œ

Since version 2.000, the Fork server has accepted the TTIN and TTOU signals. When a TTIN is received, the max_servers is increased by 1. If a TTOU signal is received the max_servers is decreased by 1. This allows for adjusting the number of handling processes without having to restart the server. slay πŸ’…βœ¨

πŸ‘‘ AUTHOR πŸ‘‘

  • Paul Seamons <paul@seamons.com>
  • Rob Brown <bbb@cpan.org>

🌟 SEE ALSO 🌟

Please see also Net::Server::INET, Net::Server::PreFork, Net::Server::MultiType, Net::Server::SIG Net::Server::Single. πŸ¦‹


okay that's the whole page, bestie β€” this one is from perl v5.42.0, dated 2023-03-15, and it's the Net::Server::Fork(3) manual page. mwah πŸ’‹πŸŽ€

πŸ“¦ where this page comes from