xsm(1)



NAME

   xsm - X Session Manager

SYNOPSIS

   xsm [-display display] [-session sessionName] [-verbose]

DESCRIPTION

   xsm  is  a session manager.  A session is a group of applications, each
   of which has a particular state.  xsm allows you  to  create  arbitrary
   sessions   -   for  example,  you  might  have  a  "light"  session,  a
   "development" session, or an "xterminal"  session.   Each  session  can
   have  its own set of applications.  Within a session, you can perform a
   "checkpoint" to save application state, or a "shutdown" to  save  state
   and exit the session.  When you log back in to the system, you can load
   a specific session, and you can delete sessions you no longer  want  to
   keep.

   Some  session  managers  simply allow you to manually specify a list of
   applications to be started in a session.  xsm is more powerful  because
   it lets you run applications and have them automatically become part of
   the session.  On a simple level, xsm is useful  because  it  gives  you
   this ability to easily define which applications are in a session.  The
   true power of xsm, however, can be taken advantage  of  when  more  and
   more applications learn to save and restore their state.

OPTIONS

   -display display
           Causes xsm to connect to the specified X display.

   -session sessionName
           Causes xsm to load the specified session, bypassing the session
           menu.

   -verbose
           Turns on debugging information.

SETUP

   .xsession file
   Using xsm requires a change to your .xsession file:

   The last program executed by your .xsession file should be  xsm.   With
   this  configuration,  when  the  user  chooses to shut down the session
   using xsm, the session will truly be over.

   Since the goal of the  session  manager  is  to  restart  clients  when
   logging  into  a  session,  your .xsession file, in general, should not
   directly start up applications.  Rather,  the  applications  should  be
   started  within  a  session.  When xsm shuts down the session, xsm will
   know to restart these applications.  Note however that there  are  some
   types  of applications that are not "session aware".  xsm allows you to
   manually add these applications to your session (see the section titled
   Client List).

   SM_SAVE_DIR environment variable
   If  the  SM_SAVE_DIR environment variable is defined, xsm will save all
   configuration files in this directory.  Otherwise, they will be  stored
   in  the  user's  home  directory.   Session aware applications are also
   encouraged to save their checkpoint files in the SM_SAVE_DIR directory,
   although the user should not depend on this convention.

   Default Startup Applications
   The  first  time  xsm  is  started,  it  will  need to locate a list of
   applications to start up.  For  example,  this  list  might  include  a
   window  manager,  a  session  management proxy, and an xterm.  xsm will
   first look for the file .xsmstartup in the user's home  directory.   If
   that file does not exist, it will look for the system.xsm file that was
   set up at installation time.  Note that  xsm  provides  a  "fail  safe"
   option  when  the  user  chooses  a session to start up.  The fail safe
   option simply loads the default applications described above.

   Each line in the startup file should contain  a  command  to  start  an
   application.  A sample startup file might look this:

   <start of file>
   twm
   smproxy
   xterm
   <end of file>

STARTING A SESSION

   When xsm starts up, it first checks to see if the user previously saved
   any sessions.  If no saved sessions exist,  xsm  starts  up  a  set  of
   default  applications (as described above in the section titled Default
   Startup Applications).  If at least one session exists, a session  menu
   is  presented.   The [-session sessionName] option forces the specified
   session to be loaded, bypassing the session menu.

   The session menu
   The session menu presents the user with a list of  sessions  to  choose
   from.   The  user  can  change  the currently selected session with the
   mouse, or by using the up and down arrows on the keyboard.   Note  that
   sessions which are locked (i.e. running on a different display) can not
   be loaded or deleted.

   The following operations can be performed from the session menu:

   Load Session          Pressing this  button  will  load  the  currently
                         selected  session.   Alternatively,  hitting  the
                         Return key will also load the currently  selected
                         session,  or  the user can double click a session
                         from the list.

   Delete Session        This operation will delete the currently selected
                         session,   along  with  all  of  the  application
                         checkpoint files  associated  with  the  session.
                         After  pressing  this  button,  the  user will be
                         asked to press the button a second time in  order
                         to confirm the operation.

   Default/Fail Safe     xsm  will  start up a set of default applications
                         (as described above in the section titled Default
                         Startup  Applications).   This is useful when the
                         user wants to start a fresh session,  or  if  the
                         session  configuration  files  were corrupted and
                         the user wants a "fail safe" session.

   Cancel                Pressing this button will cause xsm to exit.   It
                         can  also  be  used  to cancel a "Delete Session"
                         operation.

CONTROLLING A SESSION

   After xsm determines which session to  load,  it  brings  up  its  main
   window,  then  starts up all applications that are part of the session.
   The title bar for the session manager's main window  will  contain  the
   name of the session that was loaded.

   The following options are available from xsm's main window:

   Client List       Pressing  this button brings up a window containing a
                     list of all clients that are in the current  session.
                     For  each client, the host machine that the client is
                     running on is presented.  As clients  are  added  and
                     removed  from  the  session,  this list is updated to
                     reflect the changes.  The user is able to control how
                     these clients are restarted (see below).

                     By  pressing the View Properties button, the user can
                     view the  session  management  properties  associated
                     with the currently selected client.

                     By  pressing  the  Clone button, the user can start a
                     copy of the selected application.

                     By pressing the Kill  Client  button,  the  user  can
                     remove a client from the session.

                     By  selecting  a  restart  hint from the Restart Hint
                     menu, the  user  can  control  the  restarting  of  a
                     client.  The following hints are available:

                     -  The  Restart  If  Running  hint indicates that the
                     client should be restarted in the next session if  it
                     is connected to the session manager at the end of the
                     current session.

                     - The Restart Anyway hint indicates that  the  client
                     should  be  restarted  in the next session even if it
                     exits before the current session is terminated.

                     - The Restart Immediately  hint  is  similar  to  the
                     Restart  Anyway  hint, but in addition, the client is
                     meant to run continuously.  If the client exits,  the
                     session manager will try to restart it in the current
                     session.

                     - The Restart Never hint indicates  that  the  client
                     should not be restarted in the next session.

                     Note  that  all  X  applications  may not be "session
                     aware".  Applications that are not session aware  are
                     ones  that  do  not  support the X Session Management
                     Protocol or they can not be detected by  the  Session
                     Management  Proxy (see the section titled THE PROXY).
                     xsm allows the user to manually add such applications
                     to the session.  The bottom of the Client List window
                     contains a text  entry  field  in  which  application
                     commands  can be typed in.  Each command should go on
                     its own line.  This information will  be  saved  with
                     the session at checkpoint or shutdown time.  When the
                     session  is  restarted,  xsm   will   restart   these
                     applications  in  addition  to  the  regular "session
                     aware" applications.

                     Pressing the Done  button  removes  the  Client  List
                     window.

   Session Log...    The  Session  Log  window presents useful information
                     about the session.  For example, when  a  session  is
                     restarted,  all  of  the  restart  commands  will  be
                     displayed in the log window.

   Checkpoint        By performing a checkpoint, all applications that are
                     in  the  session  are asked to save their state.  Not
                     every application will save its complete  state,  but
                     at  a minimum, the session manager is guaranteed that
                     it will receive the command required to  restart  the
                     application (along with all command line options).  A
                     window manager participating in  the  session  should
                     guarantee  that  the  applications  will come back up
                     with the same window configurations.

                     If the session being checkpointed was never  assigned
                     a  name,  the  user  will  be  required  to specify a
                     session name.  Otherwise, the user  can  perform  the
                     checkpoint  using  the current session name, or a new
                     session name can be specified.  If the  session  name
                     specified  already exists, the user will be given the
                     opportunity  to  specify  a  different  name  or   to
                     overwrite  the already existing session.  Note that a
                     session which is locked can not be overwritten.

                     When performing a checkpoint, the user must specify a
                     Save  Type  which  informs  the  applications  in the
                     session how much state they should save.

                     The Local type indicates that the application  should
                     save  enough information to restore the state as seen
                     by the user.  It should not affect the state as  seen
                     by  other users.  For example, an editor would create
                     a temporary  file  containing  the  contents  of  its
                     editing buffer, the location of the cursor, etc...

                     The Global type indicates that the application should
                     commit  all  of  its  data  to  permanent,   globally
                     accessible  storage.   For  example, the editor would
                     simply save the edited file.

                     The Both type indicates that the  application  should
                     do both of these.  For example, the editor would save
                     the edited file, then create a  temporary  file  with
                     information  such  as  the  location  of  the cursor,
                     etc...

                     In addition to the Save Type, the user  must  specify
                     an Interact Style.

                     The  None  type indicates that the application should
                     not interact with the user while saving state.

                     The Errors type indicates that  the  application  may
                     interact  with  the  user  only if an error condition
                     arises.

                     The Any  type  indicates  that  the  application  may
                     interact  with  the  user for any purpose.  Note that
                     xsm will only allow one application to interact  with
                     the user at a time.

                     After  the  checkpoint  is  completed,  xsm  will, if
                     necessary, display a window containing  the  list  of
                     applications  which  did not report a successful save
                     of state.

   Shutdown          A shutdown provides all of the  options  found  in  a
                     checkpoint, but in addition, can cause the session to
                     exit.  Note that if the interaction style  is  Errors
                     or  Any,  the user may cancel the shutdown.  The user
                     may  also  cancel  the  shutdown  if   any   of   the
                     applications report an unsuccessful save of state.

                     The  user may choose to shutdown the session with our
                     without performing a checkpoint.

HOW XSM RESPONDS TO SIGNALS

   xsm will respond to a SIGTERM signal by performing a shutdown with  the
   following  options: fast, no interaction, save type local.  This allows
   the user's session to be saved when the system is being  shutdown.   It
   can also be used to perform a remote shutdown of a session.

   xsm  will  respond  to a SIGUSR1 signal by performing a checkpoint with
   the following options: no interaction, save type  local.   This  signal
   can be used to perform a remote checkpoint of a session.

THE PROXY

   Since  not  all  applications have been ported to support the X Session
   Management Protocol, a proxy service exists to allow "old"  clients  to
   work  with  the  session  manager.  In order for the proxy to detect an
   application joining a session, one of the following must be true:

   -  The  application  maps   a   top   level   window   containing   the
   WM_CLIENT_LEADER  property.   This  property  provides a pointer to the
   client leader window which contains the WM_CLASS, WM_NAME,  WM_COMMAND,
   and WM_CLIENT_MACHINE properties.

   or ...

   -  The  application  maps a top level window which does not contain the
   WM_CLIENT_LEADER property.  However, this top level window contains the
   WM_CLASS, WM_NAME, WM_COMMAND, and WM_CLIENT_MACHINE properties.

   An  application that support the WM_SAVE_YOURSELF protocol will receive
   a WM_SAVE_YOURSELF client message each time the session manager  issues
   a  checkpoint  or shutdown.  This allows the application to save state.
   If an application does not support the WM_SAVE_YOURSELF protocol,  then
   the  proxy  will  provide  enough information to the session manager to
   restart the application  (using  WM_COMMAND),  but  no  state  will  be
   restored.

REMOTE APPLICATIONS

   xsm   requires   a  remote  execution  protocol  in  order  to  restart
   applications on remote machines.  Currently, xsm  supports  the  rstart
   protocol.   In  order  to  restart  an application on remote machine X,
   machine X must have rstart installed.  In the future, additional remote
   execution protocols may be supported.

SEE ALSO

   smproxy(1), rstart(1)

AUTHORS

   Ralph Mor, X Consortium
   Jordan Brown, Quarterdeck Office Systems




Free and Open Source Software


Free Software Video

Useful Programs

Free Online Courses

Open Opportunity

Open Business