---
name: "Net::Server::Fork"
section: "3pm"
platform: "linux"
package: "perl-net-server"
version: "2.018-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Net::Server::Fork"
---

# Net::Server::Fork(3pm)

Net::Server personality

## NAME

Net::Server::Fork - Net::Server personality

## SYNOPSIS

```
    use base qw(Net::Server::Fork);
    sub process_request {
        #...code...
    }
    __PACKAGE__->run();
```

## DESCRIPTION

Please read the pod on Net::Server first.  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.

## 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.

## 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.

## 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
