urxvtd -q -o -f # for .xsession use
You can run it from your X startup scripts, for example, although it is not dependent on a working DISPLAY and, in fact, can open windows on multiple X displays on the same time.
Advantages of running a urxvt daemon include faster creation time for terminal windows and a lot of saved memory.
The disadvantage is a possible impact on stability - if the main program crashes, all processes in the terminal windows are terminated. For example, as there is no way to cleanly react to abnormal connection closes, "xkill" and server resets/restarts will kill the urxvtd instance including all windows it has opened.
This is useful if you want to bind an instance of urxvtd to the lifetime of a specific display/server. If the server does a reset, urxvtd will be killed automatically.
Note: In order to use this feature, your system administrator must have set your user's RLIMIT_MEMLOCK to a size greater than or equal to the size of the urxvtd binary (or to unlimited). See /etc/security/limits.conf.
Note 2: There is a known bug in glibc (possibly fixed in 2.8 and later versions) where calloc returns non-zeroed memory when mlockall is in effect. If you experience crashes or other odd behaviour while using --mlock, try it without it.
This can be used for example to configure the internal perl interpreter, which is shared between all terminal instances, or create additional listening sockets for additional protocols.
The code is currently executed before creating the normal listening sockets: this might change in future versions.
urxvtd -q -f -o
This waits till the control socket is available, opens the current display and forks into the background. When you log-out, the server is reset and urxvtd is killed.