xfs
(1)
Name
xfs - X font server
Synopsis
/usr/bin/xfs [ -config configuration_file ] [ -daemon ] [
-droppriv ] [ -inetd ] [ -ls listen_socket ] [ -nodaemon ] [
-port tcp_port ] [ -user username ]
Description
User Commands xfs(1)
NAME
xfs - X font server
SYNOPSIS
/usr/bin/xfs [ -config configuration_file ] [ -daemon ] [
-droppriv ] [ -inetd ] [ -ls listen_socket ] [ -nodaemon ] [
-port tcp_port ] [ -user username ]
DESCRIPTION
xfs is the X Window System font server. It supplies fonts
to X Window System display servers. The server is usually
run by inetd(1M), as described in the NOTES section below.
Automatic starting can be enabled or disabled through the
fsadmin(1) or inetadm(1M) commands. Users may also wish to
start private font servers for specific sets of fonts.
To connect to a font server, see the documentation for your
X server; it likely supports the syntax documented in the
"FONT SERVER NAMES" section of X(5).
OPTIONS
-config configuration_file
specifies the configuration file xfs will use. If this
parameter is not specified, xfs will read its configu-
ration from the first file found from the list:
/etc/X11/fs/con-
fig,/usr/lib/X11/fs/config,/etc/open-
win/fs/fontserver.cfg,/usr/open-
win/lib/X11/fontserver.cfg.
-daemon
instructs xfs to fork and go into the background auto-
matically at startup. If this option is not specified,
xfs will run as a regular process (unless it was built
to daemonize by default). When running as a daemon,
xfs will attempt to create a file in which it stores
its process ID, and will delete that file upon exit;
-droppriv
instructs xfs to attempt to run as user and group xfs
(unless the -user option is used). This has been
implemented for security reasons, as xfs may have
undiscovered buffer overflows or other paths for possi-
ble exploit, both local and remote. When using this
option, you may also wish to specify `no-listen = tcp'
in the config file, which ensures that xfs will not to
use a TCP port at all. By default, xfs runs with the
user and group IDs of the user who invoked it.
-inetd
informs xfs that it is being started by inetd, and that
a listening socket on the appropriate port is being
X Version 11 Last change: xfs 1.1.3 1
User Commands xfs(1)
passed as standard input. Assumes that inetd is con-
figured to "wait" mode, and will thus allow xfs to han-
dle listening for and accepting further connections on
this port. This allows xfs to be started on demand
when the first font client connects. When using this
option, the -daemon and -port flags are ignored.
-ls listen_socket
specifies a file descriptor which is already set up to
be used as the listen socket. This option is only
intended to be used by the font server itself when
automatically spawning another copy of itself to handle
additional connections.
-nodaemon
instructs xfs not to daemonize (fork and detach from
its controlling terminal). This option only has an
effect if xfs is built to daemonize by default, which
is not the stock configuration.
-port tcp_port
specifies the TCP port number on which the server will
listen for connections. The default port number is
7100. This option is ignored if xfs is configured to
not listen to TCP transports at all (see "Configuration
File Format" below).
-user username
instructs xfs to run as the user username. See -drop-
priv for why this may be desired. By default, xfs runs
with the user and group IDs of the user who invoked it.
INPUT FILES
xfs reads and serves any font file format recognized by the
X server itself. It locates font files through the specifi-
cation of a catalogue, which is declared in xfs's configura-
tion file.
Configuration File Format
xfs reads its configuration from a text file (see the -con-
fig option in the "OPTIONS" section above). The configura-
tion language is a list of keyword and value pairs. Each
keyword is followed by an equals sign (`=') and then the
desired value.
Recognized keywords include:
alternate-servers (list of strings)
lists alternate servers for this font server. See the
"FONT SERVER NAMES" section of X(5) for the syntax of
the string.
X Version 11 Last change: xfs 1.1.3 2
User Commands xfs(1)
catalogue (list of strings)
declares as ordered list of font path element names
from which fonts will be served. The current implemen-
tation only supports a single catalogue ("all") con-
taining all of the specified fonts. A special directory
with symlinks to font paths can be specified using a
catalogue:<dir> entry. See the CATALOGUE DIR section
below for details.
client-limit (cardinal)
determines the number of clients this font server will
support before refusing service. This is useful for
tuning the load on each individual font server.
clone-self (boolean)
indicates whether this font server should attempt to
clone itself when the number of connected clients
reaches the client-limit.
default-point-size (cardinal)
The default pointsize (in decipoints) for font requests
that don't specify a point size. The default is 120.
default-resolutions (list of resolutions)
indicates the resolutions the server supports by
default. This information may be used as a hint for
pre-rendering, and substituted into requests for scaled
fonts which do not specify a resolution. A resolution
is a comma-separated pair of horizontal and vertical
resolutions in pixels per inch. Multiple resolutions
are separated by commas.
deferglyphs (string)
sets the mode for delayed fetching and caching of
glyphs. string should be one of `none', meaning glyphs
deferment is disabled, `all', meaning it is enabled for
all fonts, and `16', meaning it is enabled only for
16-bit fonts.
error-file (string)
indicates the filename of the error file. All warnings
and errors will be logged here, unless use-syslog is
set to a true value (see below).
no-listen (trans-type)
disables the specified transport type. For example,
TCP/IP connections can be disabled with `no-listen =
tcp'.
port (cardinal)
indicates the TCP port on which the server will listen
for connections.
X Version 11 Last change: xfs 1.1.3 3
User Commands xfs(1)
use-syslog (boolean)
determines whether errors and diagnostics should be
reported via syslog(3) (on supported systems) instead
of being written to the error-file (see above).
CATALOGUE DIR
You can specify a special kind of font path in the form cat-
alogue:<dir>. The directory specified after the catalogue:
prefix will be scanned for symlinks and each symlink desti-
nation will be added as a local fontfile FPE.
The symlink can be suffixed by attributes such as
'unscaled', which will be passed through to the underlying
fontfile FPE. The only exception is the newly introduced
'pri' attribute, which will be used for ordering the font
paths specified by the symlinks.
An example configuration:
75dpi:unscaled:pri=20 -> /usr/share/X11/fonts/75dpi
ghostscript:pri=60 -> /usr/share/fonts/default/ghostscript
misc:unscaled:pri=10 -> /usr/share/X11/fonts/misc
type1:pri=40 -> /usr/share/X11/fonts/Type1
type1:pri=50 -> /usr/share/fonts/default/Type1
This will add /usr/share/X11/fonts/misc as the first FPE
with the attribute the attribute unscaled etc. This is func-
tionally equivalent to setting the following font path:
/usr/share/X11/fonts/misc:unscaled,
/usr/share/X11/fonts/75dpi:unscaled,
/usr/share/X11/fonts/Type1,
/usr/share/fonts/default/Type1,
/usr/share/fonts/default/ghostscript
Example Configuration File
#
# sample font server configuration file
#
# allow a max of 10 clients to connect to this font server.
client-limit = 10
# When a font server reaches the above limit, start up a new one.
clone-self = on
# Identify alternate font servers for clients to use.
alternate-servers = hansen:7101,hansen:7102
# Look for fonts in the following directories. The first is a set of
# TrueType outlines, the second is a set of misc bitmaps (such as terminal
# and cursor fonts), and the last is a set of 100dpi bitmaps.
X Version 11 Last change: xfs 1.1.3 4
User Commands xfs(1)
#
catalogue = /usr/share/X11/fonts/TTF,
/usr/share/X11/fonts/misc,
/usr/share/X11/fonts/100dpi/
# in 12 points, decipoints
default-point-size = 120
# 100 x 100 and 75 x 75
default-resolutions = 100,100,75,75
# Specify our log filename.
error-file = /var/log/xfs.log
# Direct diagnostics to our own log file instead of using syslog.
use-syslog = off
OUTPUT FILES
When operating in daemon mode, xfs sends diagnostic messages
(errors and warnings) to the log file specified by the
error-file configuration variable by default. However,
these messages can be sent to an alternate location via the
error-file and use-syslog configuration variables; see "Con-
figuration File Format", above.
ASYNCHRONOUS EVENTS
xfs handles the following signals specially:
SIGTERM
causes the font server to exit cleanly.
SIGUSR1
causes xfs to re-read its configuration file.
SIGUSR2
causes xfs to flush any cached data it may have.
SIGHUP
causes xfs to reset, closing all active connections and
re-reading the configuration file.
NOTES
The xfs service is managed by the service management facil-
ity, smf(5), under the service identifier:
svc:/application/x11/xfs:default
Administrative actions on this service, such as enabling,
disabling, or requesting restart, can be performed using
svcadm(1M). Responsibility for initiating and restarting
this service is delegated to inetd(1M). Use inetadm(1M) to
make configuration changes and to view configuration
X Version 11 Last change: xfs 1.1.3 5
User Commands xfs(1)
information for this service. The service's status can be
queried using the svcs(1) command.
BUGS
Multiple catalogues should be supported.
FUTURE DIRECTIONS
Significant further development of xfs is unlikely. One of
the original motivations behind it was the single-threaded
nature of the X server -- a user's X session could seem to
`freeze up' while the X server took a moment to rasterize a
font. This problem with the X server, which remains single-
threaded in all popular implementations to this day, has
been mitigated on two fronts: machines have gotten much
faster, and client-side font rendering (particularly via the
Xft library) is the norm in contemporary software.
AUTHORS
Dave Lemke, Network Computing Devices, Inc
Keith Packard, Massachusetts Institute of Technology
SEE ALSO
X(5), xfsinfo(1), fslsfonts(1), inetd(1m), fsadmin(1),
inetadm(1M), smf(5), syslogd(1M), syslog(3c), The X Font
Service Protocol, Font Server Implementation Overview
ATTRIBUTES
See attributes(5) for descriptions of the following
attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |x11/xfs |
+-----------------------------+-----------------------------+
|Interface Stability |Committed |
+-----------------------------+-----------------------------+
X Version 11 Last change: xfs 1.1.3 6