---
name: "Daemon::Generic::While1"
section: "3pm"
platform: "linux"
package: "libdaemon-generic-perl"
version: "0.85-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Daemon::Generic::While1"
---

# Daemon::Generic::While1(3pm)

## NAME

```
 Daemon::Generic::While1 - Daemon framework with default while(1) loop
```

## SYNOPSIS

```
 @ISA = qw(Daemon::Generic::While1);
 sub gd_run_body {
        # stuff
 }
```

## DESCRIPTION

This is a slight variation on Daemon::Generic: a default `"gd_run()"` provided.  It has a [**while**(1)](/while/1.md) loop that calls  `"gd_run_body()"` over and over.  It checks for reconifg and and terminate events and only actions them between calls to `"gd_run_body()"`.

Terminate events will be forced through after  `$Daemon::Generic::force_quit_delay` seconds if `"gd_run_body()"` doesn't return quickly enough.

## SUBCLASS METHODS REQUIRD

The following method is required to be overridden to subclass Daemon::Generic::While1:

- **gd\_run\_body()**

  This method will be called over and over.  This method should include a call to `sleep(1)` (or a bit more).  Reconfig events will not interrupt it.  Quit events will only interrupt it  after 15 seconds.

## ADDITIONAL METHODS

The following additional methods are available for your use (as compared to Daemon::Generic):

- gd\_sleep($period)

  This will sleep for `$period` seconds but in one-second intervals so that if a SIGINT or SIGHUP arrives the sleep period can end more quickly.

  Using this makes it safe for `"gd_run_body()"` to sleep for longer than `$Daemon::Generic::force_quit_delay` seconds  at a time.

## ADDITIONAL MEMBER DATA

The following additional bits of member data are defined:

- gd\_sigint

  The time at which an (unprocessed) SIGINT was received.

- gd\_sighup

  The time at which an (unprocessed) SIGHUP was received.

## LICENSE

Copyright (C) 2006-2010 David Muir Sharnoff \<muir@idiom.com\>.  Copyright (C) 2011 Google, Inc. This module may be used and distributed on the same terms as Perl itself.
