---
name: "pidproxy"
section: "1"
platform: "linux"
package: "supervisor"
version: "4.2.5-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/pidproxy"
---

# pidproxy(1)

Supervisor pidproxy Documentation Supervisor is a client/server system that allows its users to monitor and control a number of processes on UNIX-like operating systems. It shares some of the same goals of programs like launchd, daemontools, and runit. Unlike some of these programs, it is not meant to be run as a substitute for init as "process id 1". Instead it is meant to be used to control processes related to a project or a customer, and is meant to start like any other program at boot time.

## NAME

pidproxy - Supervisor pidproxy Documentation

Supervisor is a client/server system that allows its users to monitor and control a number of processes on UNIX-like operating systems.

It shares some of the same goals of programs like launchd, daemontools, and runit. Unlike some of these programs, it is not meant to be run as a substitute for **init** as "process id 1". Instead it is meant to be used to control processes related to a project or a customer, and is meant to start like any other program at boot time.

## OVERVIEW

### pidproxy Program

Some processes (like **mysqld**) ignore signals sent to the actual process which is spawned by **supervisord**.  Instead, a "special" thread/process is created by these kinds of programs which is responsible for handling signals.  This is problematic because **supervisord** can only kill a process which it creates itself.  If a process created by **supervisord** creates its own child processes, **supervisord** cannot kill them.

Fortunately, these types of programs typically write a "pidfile" which contains the "special" process' PID, and is meant to be read and used in order to kill the process.  As a workaround for this case, a special **pidproxy** program can handle startup of these kinds of processes.  The **pidproxy** program is a small shim that starts a process, and upon the receipt of a signal, sends the signal to the pid provided in a pidfile.  A sample configuration program entry for a pidproxy-enabled program is provided below.

```
[program:mysql]
command=/path/to/pidproxy /path/to/pidfile /path/to/mysqld_safe
```

The **pidproxy** program is put into your configuration's **$BINDIR** when supervisor is installed (it is a "console script").

## GLOSSARY

- **daemontools**

  A *process control system by D.J. Bernstein*.

- **runit**

  A *process control system*.

## AUTHOR

This man page was created by Orestis Ioannou \<orestis@oioannou.com\> using the official documentation.

## COPYRIGHT

2004-2015, Agendaless Consulting and Contributors
