---
name: "Mojo::Server::Daemon::Prefork"
section: "3pm"
platform: "linux"
package: "libmojolicious-perl"
version: "0.999926-1+squeeze2"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/Mojo::Server::Daemon::Prefork"
---

# Mojo::Server::Daemon::Prefork(3pm)

Preforking HTTP 1.1 And WebSocket Server

## NAME

Mojo::Server::Daemon::Prefork - Preforking HTTP 1.1 And WebSocket Server

## SYNOPSIS

```
    use Mojo::Daemon::Prefork;
    my $daemon = Mojo::Daemon::Prefork->new;
    $daemon->port(8080);
    $daemon->run;
```

## DESCRIPTION

Mojo::Server::Daemon::Prefork is a full featured preforking HTTP 1.1 and WebSocket server using a dynamic worker pool with `"IPv6"`, `"TLS"`, `"epoll"`, `"kqueue"`, hot deployment, UNIX domain socket sharing and optional async io support.

Optional modules IO::KQueue, IO::Epoll, IO::Socket::INET6 and IO::Socket::SSL are supported transparently and used if installed.

## ATTRIBUTES

Mojo::Server::Daemon::Prefork inherits all attributes from Mojo::Server::Daemon and implements the following new ones.

### "cleanup\_interval"

```
    my $cleanup_interval = $daemon->cleanup_interval;
    $daemon              = $daemon->cleanup_interval(15);
```

Cleanup interval for workers in seconds, defaults to `15`.

### "idle\_timeout"

```
    my $idle_timeout = $daemon->idle_timeout;
    $daemon          = $daemon->idle_timeout(30);
```

Timeout for workers to be idle in seconds, defaults to `30`.

### "max\_clients"

```
    my $max_clients = $daemon->max_clients;
    $daemon         = $daemon->max_clients(1);
```

Maximum number of parallel client connections handled by worker, defaults to `1`.

### "max\_requests"

```
    my $max_requests = $daemon->max_requests;
    $daemon          = $daemon->max_requests(1);
```

Maximum number of requests a worker process is allowed to handle, defaults to `1000`.

### "max\_servers"

```
    my $max_servers = $daemon->max_servers;
    $daemon         = $daemon->max_servers(100);
```

Maximum number of active workers, defaults to `100`.

### "max\_spare\_servers"

```
    my $max_spare_servers = $daemon->max_spare_servers;
    $daemon               = $daemon->max_spare_servers(10);
```

Maximum number of idle workers, default to `10`.

### "min\_spare\_servers"

```
    my $min_spare_servers = $daemon->min_spare_servers;
    $daemon               = $daemon->min_spare_servers(5);
```

Minimal number of idle workers, defaults to `5`.

### "start\_servers"

```
    my $start_servers = $daemon->start_servers;
    $daemon           = $daemon->start_servers(5);
```

Number of workers to spawn at server startup, defaults to `5`.

## METHODS

Mojo::Server::Daemon::Prefork inherits all methods from Mojo::Server::Daemon and implements the following new ones.

### "accept\_lock"

```
    my $lock = $daemon->accept_lock($blocking);
```

Try to get the accept lock.

### "child"

```
    $daemon->child;
```

Worker process.

### "child\_status"

```
    $daemon->child_status('idle');
```

Change status for worker process.

### "daemonize"

```
    $daemon->daemonize;
```

Daemonize manager process.

### "parent"

```
    $daemon->parent;
```

Manager process.

### "run"

```
    $daemon->run;
```

Start server.

## SEE ALSO

Mojolicious, Mojolicious::Guides, \<http://mojolicious.org\>.
