diff --git a/doc/recover.txt b/doc/recover.txt new file mode 100644 index 000000000..80eeadb51 --- /dev/null +++ b/doc/recover.txt @@ -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 + + +