| 1 |
=head1 NAME |
| 2 |
|
| 3 |
@@RXVT_NAME@@d - @@RXVT_NAME@@ terminal daemon |
| 4 |
|
| 5 |
=head1 SYNOPSIS |
| 6 |
|
| 7 |
B<@@RXVT_NAME@@d> [-q|--quiet] [-o|--opendisplay] [-f|--fork] [-m|--mlock] [-e|--eval I<perlstring>] |
| 8 |
|
| 9 |
B<@@RXVT_NAME@@d> -q -o -f # for .xsession use |
| 10 |
|
| 11 |
=head1 DESCRIPTION |
| 12 |
|
| 13 |
This manpage describes the @@RXVT_NAME@@d daemon, which is the same vt102 |
| 14 |
terminal emulator as @@RXVT_NAME@@, but runs as a daemon that can open |
| 15 |
multiple terminal windows within the same process. |
| 16 |
|
| 17 |
You can run it from your X startup scripts, for example, although it is |
| 18 |
not dependent on a working DISPLAY and, in fact, can open windows on |
| 19 |
multiple X displays on the same time. |
| 20 |
|
| 21 |
Advantages of running a @@RXVT_NAME@@ daemon include faster creation time |
| 22 |
for terminal windows and a lot of saved memory. |
| 23 |
|
| 24 |
The disadvantage is a possible impact on stability - if the |
| 25 |
main program crashes, all processes in the terminal windows are |
| 26 |
terminated. For example, as there is no way to cleanly react to abnormal |
| 27 |
connection closes, C<xkill> and server resets/restarts will kill the |
| 28 |
B<@@RXVT_NAME@@d> instance including all windows it has opened. |
| 29 |
|
| 30 |
=head1 OPTIONS |
| 31 |
|
| 32 |
B<@@RXVT_NAME@@d> currently understands a few options only. Bundling of |
| 33 |
options is not yet supported. |
| 34 |
|
| 35 |
=over |
| 36 |
|
| 37 |
=item B<-q>, B<--quiet> |
| 38 |
|
| 39 |
Normally, B<@@RXVT_NAME@@d> outputs the message C<< rxvt-unicode daemon |
| 40 |
listening on <path> >> after binding to its control socket. This option |
| 41 |
will suppress this message (errors and warnings will still be logged). |
| 42 |
|
| 43 |
=item B<-o>, B<--opendisplay> |
| 44 |
|
| 45 |
This forces B<@@RXVT_NAME@@d> to open a connection to the current |
| 46 |
C<$DISPLAY> and keep it open. |
| 47 |
|
| 48 |
This is useful if you want to bind an instance of B<@@RXVT_NAME@@d> to |
| 49 |
the lifetime of a specific display/server. If the server does a reset, |
| 50 |
B<@@RXVT_NAME@@d> will be killed automatically. |
| 51 |
|
| 52 |
=item B<-f>, B<--fork> |
| 53 |
|
| 54 |
This makes B<@@RXVT_NAME@@d> fork after it has bound itself to its control |
| 55 |
socket. |
| 56 |
|
| 57 |
=item B<-m>, B<--mlock> |
| 58 |
|
| 59 |
This makes B<@@RXVT_NAME@@d> call mlockall(2) on itself. This locks |
| 60 |
B<@@RXVT_NAME@@d> in RAM and prevents it from being swapped out to disk, |
| 61 |
at the cost of consuming a lot more memory on most operating systems. |
| 62 |
|
| 63 |
Note: In order to use this feature, your system administrator must have set |
| 64 |
your user's RLIMIT_MEMLOCK to a size greater than or equal to the size of the |
| 65 |
B<@@RXVT_NAME@@d> binary (or to unlimited). See F</etc/security/limits.conf>. |
| 66 |
|
| 67 |
Note 2: There is a known bug in glibc (possibly fixed in 2.8 and later |
| 68 |
versions) where calloc returns non-zeroed memory when mlockall is in |
| 69 |
effect. If you experience crashes or other odd behaviour while using |
| 70 |
--mlock, try it without it. |
| 71 |
|
| 72 |
=item B<-e>, B<--eval> I<perlstring> |
| 73 |
|
| 74 |
Evaluate the given perl code after basic initialisation (requires perl |
| 75 |
support to be enabled when compiling B<@@RXVT_NAME@@d>). |
| 76 |
|
| 77 |
This can be used for example to configure the internal perl interpreter, |
| 78 |
which is shared between all terminal instances, or create additional |
| 79 |
listening sockets for additional protocols. |
| 80 |
|
| 81 |
The code is currently executed I<before> creating the normal listening |
| 82 |
sockets: this might change in future versions. |
| 83 |
|
| 84 |
=back |
| 85 |
|
| 86 |
=head1 EXAMPLES |
| 87 |
|
| 88 |
This is a useful invocation of B<@@RXVT_NAME@@d> in a F<.xsession>-style |
| 89 |
script: |
| 90 |
|
| 91 |
@@RXVT_NAME@@d -q -f -o |
| 92 |
|
| 93 |
This waits till the control socket is available, opens the current display |
| 94 |
and forks into the background. When you log-out, the server is reset and |
| 95 |
B<@@RXVT_NAME@@d> is killed. |
| 96 |
|
| 97 |
=head1 ENVIRONMENT |
| 98 |
|
| 99 |
=over |
| 100 |
|
| 101 |
=item B<RXVT_SOCKET> |
| 102 |
|
| 103 |
Both B<@@RXVT_NAME@@c> and B<@@RXVT_NAME@@d> use the environment |
| 104 |
variable F<RXVT_SOCKET> to create a listening socket and to contact |
| 105 |
the @@RXVT_NAME@@d, respectively. If the variable is missing then |
| 106 |
F<<< $HOME/.urxvt/urxvtd-I<< <nodename> >> >>> is used. |
| 107 |
|
| 108 |
=item B<LISTEN_PID>, B<LISTEN_FDS>, B<LISTEN_FDNAMES> |
| 109 |
|
| 110 |
if these environment variables are set, @@RXVT_NAME@@d checks for a file |
| 111 |
descriptor passed by the service manager via systemd native interface. If |
| 112 |
one is provided, @@RXVT_NAME@@d uses it as its listening socket instead of |
| 113 |
creating one as specified above. |
| 114 |
|
| 115 |
=item B<DISPLAY> |
| 116 |
|
| 117 |
Only used when the C<--opendisplay> option is specified. Must contain a |
| 118 |
valid X display name. |
| 119 |
|
| 120 |
=back |
| 121 |
|
| 122 |
=head1 SEE ALSO |
| 123 |
|
| 124 |
@@RXVT_NAME@@(7), @@RXVT_NAME@@c(1) |