<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >PDNS internals</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="PowerDNS manual" HREF="index.html"><LINK REL="PREVIOUS" TITLE="LDAP backend" HREF="ldap.html"><LINK REL="NEXT" TITLE="Guardian" HREF="guardian.html"></HEAD ><BODY CLASS="APPENDIX" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >PowerDNS manual</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="ldap.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="guardian.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="APPENDIX" ><H1 ><A NAME="PDNS-INTERNALS" ></A >Appendix B. PDNS internals</H1 ><P > PDNS is normally launched by the init.d script but is actually a binary called <TT CLASS="FILENAME" >pdns_server</TT >. This file is started by the <B CLASS="COMMAND" >start</B > and <B CLASS="COMMAND" >monitor</B > commands to the init.d script. Other commands are implemented using the controlsocket. </P ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="CONTROLSOCKET" >B.1. Controlsocket</A ></H1 ><P > The controlsocket is the means to contact a running PDNS daemon, or as we now know, a running <TT CLASS="FILENAME" >pdns_server</TT >. Over this sockets, instructions can be sent using the <TT CLASS="FILENAME" >pdns_control</TT > program. Like the <TT CLASS="FILENAME" >pdns_server</TT >, this program is normally accessed via the init.d script. </P ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="PDNSCONTROL" >B.1.1. pdns_control</A ></H2 ><P > To communicate with PDNS over the controlsocket, the <B CLASS="COMMAND" >pdns_control</B > command is used. The init.d script also calls pdns_control. The syntax is simple: <B CLASS="COMMAND" >pdns_control command arguments</B >. Currently this is most useful for telling backends to rediscover domains or to force the transmission of notifications. See <A HREF="master.html" >Section 13.3</A >. </P ><P > Besides the commands implemented by the init.d script, for which see <A HREF="pdns-on-unix.html" >Section 2.3</A >, the following pdns_control commands are available: <P ></P ><DIV CLASS="VARIABLELIST" ><DL ><DT >ccounts</DT ><DD ><P > Returns counts on the contents of the cache. </P ></DD ><DT >notify <KBD CLASS="USERINPUT" >domain</KBD ></DT ><DD ><P > Adds a domain to the notification list, causing PDNS to send out notifications to the nameservers of a domain. Can be used if a slave missed previous notifications or is generally hard of hearing. </P ></DD ><DT >notify-host <KBD CLASS="USERINPUT" >domain</KBD > <KBD CLASS="USERINPUT" >host</KBD ></DT ><DD ><P > Same as above but with operator specified IP address as destination, to be used if you know better than PowerDNS. </P ></DD ><DT >purge</DT ><DD ><P > Purges the entire Packet Cache - see <A HREF="performance.html" >Chapter 9</A >. </P ></DD ><DT >purge <KBD CLASS="USERINPUT" >record</KBD ></DT ><DD ><P > Purges all entries for this exact record name - see <A HREF="performance.html" >Chapter 9</A >. </P ></DD ><DT >purge <KBD CLASS="USERINPUT" >record</KBD >$</DT ><DD ><P > Purges all cache entries ending on this name, effectively purging an entire domain - see <A HREF="performance.html" >Chapter 9</A >. </P ></DD ><DT >purge</DT ><DD ><P > Purges the entire Packet Cache - see <A HREF="performance.html" >Chapter 9</A >. </P ></DD ><DT >purge <KBD CLASS="USERINPUT" >record</KBD ></DT ><DD ><P > Purges all entries for this exact record name - see <A HREF="performance.html" >Chapter 9</A >. </P ></DD ><DT >rediscover</DT ><DD ><P > Instructs backends that new domains may have appeared in the database, or, in the case of the Bind backend, in named.conf. </P ></DD ><DT >reload</DT ><DD ><P > Instructs backends that the contents of domains may have changed. Many backends ignore this, the Bind backend will check timestamps for all zones (once queries come in for it) and reload if needed. </P ></DD ><DT >retrieve <KBD CLASS="USERINPUT" >domain</KBD ></DT ><DD ><P > Retrieve a slave domain from its master. Done nearly immediatly. </P ></DD ><DT >set <KBD CLASS="USERINPUT" >variable value</KBD ></DT ><DD ><P > Set a configuration parameter. Currently only the 'query-logging' parameter can be set. </P ></DD ><DT >uptime</DT ><DD ><P > Reports the uptime of the daemon in human readable form. </P ></DD ><DT >version</DT ><DD ><P > returns the version of a running pdns daemon. </P ></DD ></DL ></DIV > </P ></DIV ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="ldap.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="guardian.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >LDAP backend</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" > </TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Guardian</TD ></TR ></TABLE ></DIV ></BODY ></HTML >