1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
There are 3 front-facing scripts for this new pidfile-based restart system.
All of them belong in ~/bin/, although one of them is not actually a script.
(it is source'd, which follows $PATH)
restart-all Call this on first boot
if REBUILD is not empty, it will first pull, build, and install
from the tmw-eathena repository.
In bash you can do this like: REBUILD=sure restart-all
restart-world Call this if you only want to restart one server.
The first argument is the directory, e.g. ~/tmwa-server-data/
After that, you may pass --manual or --auto to not-pull or pull
script updates. If neither is specified, the value of PULL is
used.
This does NOT use AUTO_WORLDS or MANUAL_WORLDS.
restart-config Contains configuration settings.
SERVER_SOURCE is the location of the tmw-eathena clone.
LOGIN_WORLD is the location of the clone that contains the
account data. It does not necessarily have to correspond to
a world that actually starts, although it does in the
current configuration
AUTO_WORLDS is an array (space separated, surrounded by
parentheses) of world directories that will have updates
pulled when calling restart-all.
MANUAL_WORLDS is an array of world directories that will not
have updates pulled when calling restart-all
VERBOSE controls whether the servers will print their output
to the tty or have it redirected to /dev/null. Use if if
you have any problems. It is inspected by the low-level
command restart-pid.
REBUILD controls whether the server sources will be rebuilt
during restart-all.
PULL controls whether updates should be pulled by
restart-world. It is ignored if --auto or --manual
is specified, which is the case during restart-all.
All of these variables (except probably the arrays) can be
specified in the environment, but the values in restart-config
override them. However, since restart-config is a bash script,
you could conditionally set the variables by using if test ...
There are also two commands you'll probably never have to call yourself:
restart-login is self-explanatory and is usually called only by restart-all
restart-pid is the low-level command that maintains the PID file and kills
the old servers. In order for the server to be killed, three
things must match: the PID, and name, and the user.
This will keep errors to a minimum in case PID files continue
to exist after the processes have died and new processes have
taken their IDs.
There's a theoretical case in which the replacing process will
be a new instance of the same process by the same user in a
different world directory. The odds of this happening are
theoretically 1 in 32767-ish, but in practice might be a bit
more common than that. If you find your newly-spawned children
did not survive, try running restart-all again.
|