*** empty log message ***
This commit is contained in:
132
doc/recover.txt
Normal file
132
doc/recover.txt
Normal file
@@ -0,0 +1,132 @@
|
||||
|
||||
|
||||
|
||||
RECOVER(6) 1993 RECOVER(6)
|
||||
|
||||
|
||||
|
||||
NAME
|
||||
recover - recover a NetHack game interrupted by disaster
|
||||
|
||||
SYNOPSIS
|
||||
recover [ -d directory ] base1 base2 ...
|
||||
|
||||
DESCRIPTION
|
||||
Occasionally, a NetHack game will be interrupted by disaster
|
||||
when the game or the system crashes. Prior to NetHack v3.1,
|
||||
these games were lost because various information like the
|
||||
player's inventory was kept only in memory. Now, all per-
|
||||
tinent information can be written out to disk, so such games
|
||||
can be recovered at the point of the last level change.
|
||||
|
||||
The base options tell recover which files to process. Each
|
||||
base option specifies recovery of a separate game.
|
||||
|
||||
The -d option, which must be the first argument if it
|
||||
appears, supplies a directory which is the NetHack play-
|
||||
ground. It overrides the value from NETHACKDIR, HACKDIR, or
|
||||
the directory specified by the game administrator during
|
||||
compilation (usually /usr/games/lib/nethackdir).
|
||||
|
||||
For recovery to be possible, nethack must have been compiled
|
||||
with the INSURANCE option, and the run-time option check-
|
||||
point must also have been on. NetHack normally writes out
|
||||
files for levels as the player leaves them, so they will be
|
||||
ready for return visits. When checkpointing, NetHack also
|
||||
writes out the level entered and the current game state on
|
||||
every level change. This naturally slows level changes down
|
||||
somewhat.
|
||||
|
||||
The level file names are of the form base.nn, where nn is an
|
||||
internal bookkeeping number for the level. The file base.0
|
||||
is used for game identity, locking, and, when checkpointing,
|
||||
for the game state. Various OSes use different strategies
|
||||
for constructing the base name. Microcomputers use the
|
||||
character name, possibly truncated and modified to be a
|
||||
legal filename on that system. Multi-user systems use the
|
||||
(modified) character name prefixed by a user number to avoid
|
||||
conflicts, or "xlock" if the number of concurrent players is
|
||||
being limited. It may be necessary to look in the play-
|
||||
ground to find the correct base name of the interrupted
|
||||
game. recover will transform these level files into a save
|
||||
file of the same name as nethack would have used.
|
||||
|
||||
Since recover must be able to read and delete files from the
|
||||
playground and create files in the save directory, it has
|
||||
interesting interactions with game security. Giving ordi-
|
||||
nary players access to recover through setuid or setgid is
|
||||
tantamount to leaving the playground world-writable, with
|
||||
respect to both cheating and messing up other players. For
|
||||
|
||||
|
||||
|
||||
January Last change: 9 1
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
RECOVER(6) 1993 RECOVER(6)
|
||||
|
||||
|
||||
|
||||
a single-user system, this of course does not change any-
|
||||
thing, so some of the microcomputer ports install recover by
|
||||
default.
|
||||
|
||||
For a multi-user system, the game administrator may want to
|
||||
arrange for all .0 files in the playground to be fed to
|
||||
recover when the host machine boots, and handle game crashes
|
||||
individually. If the user population is sufficiently
|
||||
trustworthy, recover can be installed with the same permis-
|
||||
sions the nethack executable has. In either case, recover
|
||||
is easily compiled from the distribution utility directory.
|
||||
|
||||
NOTES
|
||||
Like nethack itself, recover will overwrite existing save-
|
||||
files of the same name. Savefiles created by recover are
|
||||
uncompressed; they may be compressed afterwards if desired,
|
||||
but even a compression-using nethack will find them in the
|
||||
uncompressed form.
|
||||
|
||||
SEE ALSO
|
||||
nethack(6)
|
||||
|
||||
BUGS
|
||||
recover makes no attempt to find out if a base name speci-
|
||||
fies a game in progress. If multiple machines share a play-
|
||||
ground, this would be impossible to determine.
|
||||
|
||||
recover should be taught to use the nethack playground lock-
|
||||
ing mechanism to avoid conflicts.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
January Last change: 9 2
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user