Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Graceful server restart
branch: master

Graceful swan takes flight. Hunter eyes his prey. KABLAM! Hunter falls. Swan holsters gun. Server continues running.

grace lets you restart your server without interrupting current users. It's a runtime configurable, port forwarder.

Build Status


Install the dependencies:

pip install Twisted
pip install PyOpenSSL # if you want SSL support

Either clone repo:

git clone grace.git
cd grace.git

Or download a tar:

tar xf master
cd iffy-grace-*

Then install:

python install


Start forwarding TCP traffic from port 9000 to port 7500 on the local machine:

grace start tcp:9000 tcp:host=

Switch traffic from port 7500 to port 7600 (without disconnecting anyone still connected to port 7500):

grace switch tcp:9000 tcp:host=

List forwarding rules:

grace ls

Wait for previous forwards to finish:

grace wait

Stop forwarding:

grace stop

It's not just for HTTP

Because grace uses Twisted's excellent endpoints, you can forward just about any traffic to just about anywhere. Here's SSL to TCP:

grace start ssl:443:privateKey=key.pem:certKey=crt.pem tcp:host=


grace start tcp:9000

TCP to domain socket:

grace start tcp:9000 unix:/var/foo/bar

Domain socket to TCP:

grace start unix:/var/foo/bar tcp:host=

Planned usage not yet supported

Upgrade grace to a new version and swap out the current grace process with a new one:

grace restart

Specify where logs, pid and control socket go (XXX needs more explanation):

grace -d /tmp/foo start tcp:9000 tcp:host=

Running the tests

Use trial to run the tests:

trial grace
Something went wrong with that request. Please try again.