man pages section 1: User Commands

Exit Print View

Updated: July 2014
 
 

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