PennMUSH Community

root/1.8.3/trunk/game/README

Revision 1032, 7.0 kB (checked in by shawnw, 1 year ago)

Merged 1.8.3p4 into trunk

Line 
1              Run-time Installation and Configuration of PennMUSH
2
3 This document assumes that you've successfully compiled and installed
4 PennMUSH as described in the main PennMUSH README file.
5
6 The next step is to create your configuration file. In the game
7 directory is a file called "mush.cnf". If you don't have mush.cnf, but
8 you have mushcnf.dst, you can copy mushcnf.dst to mush.cnf.  This file
9 is a list of all runtime configuration options with their default
10 settting. Change them as you see fit.  IMPORTANT: do not _delete_ any
11 parameters. They all need to be there.
12
13 WIN32 WITH MSVC++:
14   Under win32 using the Microsoft compiler, ignore the restart script.
15   In the configuration file, turn off disk database compression; it is
16   not supported.  Then go to the game directory and run PennMUSH.exe.
17   Poof, you're done.
18
19 UNIX or WIN32 VIA CYGWIN/MINGW:
20   Edit the restart script. Change GAMEDIR to the path to the directory
21   containing mush.cnf. Read about the optional settings in that file.
22   The restart script is written for sh, and assumes a fairly standard
23   Berkeley UNIX setup. If you're on a HP-UX or SysV machine, for
24   example, you may need to change the restart script a bit. Then run
25   it, with 'sh restart' or './restart'.
26
27 You should now be able to log into the game.  This distribution can
28 general a minimal database - a God character, starting room, and
29 master room.  The server will generate this database if it doesn't
30 find another database to load.
31
32 If you're starting with the minimal database, the god character "One"
33 has no password, so you can log in without one. Of course, you should
34 immediately set one (via @newpasswd).  options.h has the Master Room
35 as #2 by default; in the minimal database, this room is created for
36 you.
37
38 Now you should be set -- all you have to do now is customize the .txt
39 files in the game directory.
40
41 The logfiles in the "log" directory generally contain useful
42 information. You will probably want to read your error logfile
43 (defined in mush.cnf) every time, since errors and other important
44 messages get printed to that logfile.
45
46 After your first startup, it's a good idea to make some small change
47 to the database (e.g., @create an object) and then do an
48 @shutdown. Restart the game again and ensure that your object is still
49 present - this verifies that the server is successfully dumping.
50
51 ============================================================================
52
53                             Game Trouble-shooting
54
55 If you ever run into trouble, the your first reaction should ALWAYS be
56 to back up your database. indb.Z.old is the file that the MUSH saves
57 indb.Z to when the game, restarted, indb.Z is the file that the MUSH
58 loaded at startup, and outdb.Z is the file to which the MUSH is
59 currently dumping the database.
60
61 You can tell if a dump is (theoretically) complete by doing a
62 "zcat <database file name> | tail -10".  The last line should read
63 "***END OF DUMP***". If it doesn't, your database has been truncated
64 for some reason. Check the logfile. Possible causes include a full
65 process table, a full disk partition, or running out of disk quota.
66
67 Occasionally the dump process may dump core. This is caused by some
68 sort of corruption in an attribute, normally. You can tell if the dump
69 process has died by looking in your data directory; you will see
70 something like "outdb.Z.#5#". Wait a few moments and check on the file
71 again. If it has grown, then the game is in the process of a normal
72 dump. If it hasn't, and there's a core file, then something has gone
73 wrong. You should definitely shout a warning that building is not being
74 saved.
75
76 To attempt to fix the problem, do a @dbck to take care of any possible
77 minor weirdness in the database, then try doing a "@dump/paranoid",
78 and reading the checkpoint logfile (default is log/checkpt.log). This
79 is slow, but it will write out an uncorrupted database, and tell you
80 what it fixed. Back up that database and indb.Z, then figure out what
81 you're going to do next: you can take the game down with a kill -9, or
82 attempt to manually fix the problem by either @destroying the
83 offending object, or attempting to reset the attributes on the object
84 that are causing a problem.  If "@dump/paranoid" dies, you are more or
85 less out of luck.
86
87 The game may crash from time to time. It will generate a core file,
88 usually; if you don't limit the coredumpsize or strip the executable,
89 you should be able to get some useful information out of it, using a
90 debugger. Javelin is interested in stack traces. You can do a stack
91 trace in the following manner: Go into the directory where you keep
92 your source code, and type
93     <name of debugger> netmud ../game/core
94 If you don't call your executable "netmud", substitute in whatever you
95 do call it.
96
97 You are looking for variables set to bizarre values - attempts to
98 access objects that aren't there, attempts to use pointers which point
99 to nothing, and the like.
100
101 If you are using the "adb" debugger (don't do this unless you really
102 have absolutely nothing else available), you will see nothing. It's
103 loaded and ready, though. Type "$c". This will print out a list of the
104 functions it called. Type "$q" to quit. You can't really get much more
105 useful information out of adb.
106
107 If you are using the "dbx" debugger, type "where" to see the stack
108 trace. You can move through it using "up" and "down", and see exactly
109 what the sequence of calls was. You can also use "print <variable
110 name>" to see the value of a variable at the time the game crashed.
111 The "gdb" debugger is similar to "dbx"; with that, you can abbreviate
112 "print" as "p". It is the reccomended debugger to use; when gdb is
113 present on your system and you're using gcc as the compiler, gcc is
114 told to use a gdb-specific debugging format.
115
116 If you want to start PennMUSH running under a debugger, instead of
117 attaching to an already-running process, it'll need two arguments:
118 --no-session, and the name of your config file if it is different than
119 mush.cnf. Without --no-session, the server will immediately fork off a
120 detatched child process, and the debugger will tell you that the
121 process exited normally..
122
123 The PennMUSH developers appreciate news of any bugs found, and any
124 patches that have been written to deal with them. We are also
125 interested in any extensions that people make to the code, and
126 requests that ones that are of more than just local interest be sent
127 to us for inclusion in the next release of this code. See
128 http://dev.pennmush.org.
129
130 One important thing to remember is, if the MUSH refuses to start,
131 there is probably a good reason. Check the MUSH log, and the core
132 file, if there is one. Make sure to back up your database before
133 attempting to restart -- remember that every time it restarts, it
134 overwrites indb.Z.old. If you restart three times and somehow manage
135 to trash your database each time (for example, a full process table
136 zero'ing out your files), you won't have a backup to restart from,
137 unless you've backed up your database before trying!
138
139 You can also find helpful tips in Javelin's Guide for Gods,
140 which is available on the WWW as
141     http://javelin.pennmush.org/~alansz/guide.html
142 and by ftp from ftp.pennmush.org as
143     /PennMUSH/Guide/guide-single.txt
144
Note: See TracBrowser for help on using the browser.