-collectd script as well as from a normal python interpreter:
-1. collectd will try to import the B<readline> module to give you a decent
-way of entering your commmands. The daemonized collectd won't do that.
-2. collectd will block SIGINT. Pressing Ctrl+C will usually cause collectd to
-shut down. This would be problematic in an interactive session, therefore this
-signal will be blocked. You can still use it to interrupt syscalls like sleep
-and pause but it won't generate a KeyboardInterrupt exception either.
+collectd script as well as from a normal Python interpreter:
+
+=over 4
+
+=item
+
+B<1.> collectd will try to import the B<readline> module to give you a decent
+way of entering your commands. The daemonized collectd won't do that.
+
+=item
+
+B<2.> collectd will block I<SIGINT>. Pressing I<Ctrl+C> will usually cause
+collectd to shut down. This would be problematic in an interactive session,
+therefore this signal will be blocked. You can still use it to interrupt
+syscalls like sleep and pause but it won't generate a I<KeyboardInterrupt>
+exception either.
+
+To quit collectd send I<EOF> (press I<Ctrl+D> at the beginning of a new line).
+
+=item
+
+B<3.> collectd handles I<SIGCHLD>. This means that Python won't be able to
+determine the return code of spawned processes with system(), popen() and
+subprocess. This will result in Python not using external programs like less
+to display help texts. You can override this behavior with the B<PAGER>
+environment variable, e.g. I<export PAGER=less> before starting collectd.
+Depending on your version of Python this might or might not result in an
+B<OSError> exception which can be ignored.
+
+If you really need to spawn new processes from Python you can register an init
+callback and reset the action for SIGCHLD to the default behavior. Please note
+that this I<will> break the exec plugin. Do not even load the exec plugin if
+you intend to do this!