diff --git a/doc/ZEO/SIGNALS.txt b/doc/ZEO/SIGNALS.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c0d4803a633f79266ed274e21921558e0148ca1d
--- /dev/null
+++ b/doc/ZEO/SIGNALS.txt
@@ -0,0 +1,26 @@
+Signals are a posix inter-process communications mechanism.  If you
+are using Windows then this documentation is not for you.
+
+The ZEO storage server process (started with ZEO/start.py) responds to
+signals which are sent to the process id written to the file
+.../var/ZEO_SERVER.pid.
+
+    SIGHUP -  Rotate the log files.
+	      kill -SIGHUP `cat .../var/ZEO_SERVER.pid`
+
+    SIGTERM - Close open storages and sockets, then shut down.
+              kill -SIGTERM `cat .../var/ZEO_SERVER.pid`
+
+    SIGINT  - Close open storages and sockets, then restart.
+              kill -SIGINT `cat .../var/ZEO_SERVER.pid`
+
+The pid file contains two pids: the pid of the parent process and the
+pid of the child process, in that order.  The child process is always
+the actual storage server process.  When using zdaemon (the default),
+the parent is the zdaemon process.  Otherwise (when the -s option is
+used), the parent is the shell (script) that started the storage
+server.
+
+Note that zdaemon forwards signals to the child process.
+(Specifically, it forwards all those signals listed above, plus
+SIGQUIT and SIGUSR1.)