# npid

> Manage a pid file.

Latest version **0.4.0** (published 2014-04-06) · 0 weekly downloads

## Install

```sh
npm install npid
pnpm add npid
yarn add npid
bun add npid
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.4.0 |
| Published | 2014-04-06 |
| First published | 2012-03-26 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >= 0.8 |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 41 |
| Author | Mathieu Turcotte |
| Maintainers | mathieu |
| Keywords | util, pid, daemon, process |

## Links

- npm: https://www.npmjs.com/package/npid
- Repository: https://github.com/MathieuTurcotte/node-pid
- Issues: https://github.com/MathieuTurcotte/node-pid/issues
- npm.io page: https://npm.io/package/npid

## Alternatives

- [@sindresorhus/slugify](https://npm.io/package/@sindresorhus/slugify.md) — 3.7M weekly downloads
- [solid-js](https://npm.io/package/solid-js.md) — 2.7M weekly downloads
- [expo-glass-effect](https://npm.io/package/expo-glass-effect.md) — 2.5M weekly downloads
- [nanoassert](https://npm.io/package/nanoassert.md) — 780.8K weekly downloads
- [@ffmpeg/ffmpeg](https://npm.io/package/@ffmpeg/ffmpeg.md) — 529.5K weekly downloads

## Recent versions

- 0.4.0 (latest) — 2014-04-06
- 0.3.2 — 2013-05-08
- 0.3.1 — 2012-09-19
- 0.3.0 — 2012-08-26
- 0.2.0 — 2012-08-25
- 0.1.0 — 2012-03-26

## README

# A pid file manager for Node.js
[![Build Status](https://secure.travis-ci.org/MathieuTurcotte/node-pid.png?branch=master)](http://travis-ci.org/MathieuTurcotte/node-pid)
[![NPM version](https://badge.fury.io/js/npid.png)](http://badge.fury.io/js/npid)

Manage a pid file in Node.js.

## Installation

``` sh
$ npm install npid
```

## Unit tests

``` sh
$ npm test
```

## Usage

This module simply creates and manages a pid file for the entire duration of
the program execution. The pid file is automatically deleted upon normal program
exit. If a pid file already exists, an exception will be thrown.

``` js
var npid = require('npid');

try {
    var pid = npid.create('/var/run/chubaka.pid');
    pid.removeOnExit();
} catch (err) {
    console.log(err);
    process.exit(1);
}
```

Note that the pid file won't be removed when a program stops due to an uncaught
exception or a unhandled signal. This can be avoided by specifying handlers for
uncaught exceptions and signals that call `process.exit` or remove the pid file
explicitly before exiting.

## API

### Static functions

#### npid.create(path, [force]): npid.Pid

- path: pid file path
- force: overwrite any existing pid file

Synchronously creates a pid file and returns a handle to it. Will throw an
exception if a pid file already exists and the `force` parameter is false.

#### npid.remove(path): bool

- path: pid file path

Synchronously removes a pid file. Does not throw if the pid file is missing or
if the removal fails. Returns a boolean indicating whether the pid file removal
succeeded.

### Class Pid

Represents a handle to a pid file and expose an API to remove it either
automatically at process exit or manually when the process exits due to
an uncaught exception or a signal.

#### pid.remove(): bool

Synchronously removes the pid file. Does not throw if the pid file is missing
or if the removal fails. Returns a boolean indicating whether the pid file
removal succeeded.

#### pid.removeOnExit()

Removes the pid file on normal process exit.

## License

This code is free to use under the terms of the [MIT license](http://mturcotte.mit-license.org/).

---
_Source: https://npm.io/package/npid · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
