lyskomd.8 14.8 KB
Newer Older
1
.\" $Id: lyskomd.8,v 1.26 1998/06/14 14:50:23 byers Exp $
2
.\" Copyright (C) 1991, 1994  Lysator Academic Computer Association.
Linus Tolke's avatar
Linus Tolke committed
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
.\"
.\" This file is part of the LysKOM server.
.\" 
.\" LysKOM is free software; you can redistribute it and/or modify it
.\" under the terms of the GNU General Public License as published by 
.\" the Free Software Foundation; either version 1, or (at your option) 
.\" any later version.
.\" 
.\" LysKOM is distributed in the hope that it will be useful, but WITHOUT
.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
.\" FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
.\" for more details.
.\" 
.\" You should have received a copy of the GNU General Public License
.\" along with LysKOM; see the file COPYING.  If not, write to
.\" Lysator, c/o ISY, Linkoping University, S-581 83 Linkoping, SWEDEN,
.\" or the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, 
.\" MA 02139, USA.
.\"
.\" Please mail bug reports to bug-lyskom@lysator.liu.se. 
.\"
24
25
.\" $Id: lyskomd.8,v 1.26 1998/06/14 14:50:23 byers Exp $
.\" $Date: 1998/06/14 14:50:23 $
26
.TH lyskomd 8 "January 12, 1994" "Lysator"
Linus Tolke's avatar
Linus Tolke committed
27
.SH NAME
28
lyskomd - LysKOM server
Linus Tolke's avatar
Linus Tolke committed
29
.SH SYNOPSIS
30
.B lyskomd 
Linus Tolke's avatar
Linus Tolke committed
31
[
32
.B -d ...
Linus Tolke's avatar
Linus Tolke committed
33
] [
34
.B config-file
Linus Tolke's avatar
Linus Tolke committed
35
]
36
37
38
39
40
41
42
43
44
.PP
.B lyskomd
[
.B -d
] [
.B -c config-file
] [
.B -a aux-item-defs
]
Linus Tolke's avatar
Linus Tolke committed
45
.SH DESCRIPTION
Per Cederqvist's avatar
Per Cederqvist committed
46
This documents lyskomd release 1.9.0.  lyskomd is a LysKOM server.
Linus Tolke's avatar
Linus Tolke committed
47
.PP
48
The server reads a configuration file (see CONFIGURATION below) and
49
then listens for connections on the given ports (defaults are 4894
Linus Tolke's avatar
Linus Tolke committed
50
for the 
Linus Tolke's avatar
Linus Tolke committed
51
.I client_port
52
and 4895 for the
Linus Tolke's avatar
Linus Tolke committed
53
.IR mux_port ).
Linus Tolke's avatar
Linus Tolke committed
54
55
56
57
.SH OPTIONS
.TP
.B \-d
Adds one to the debug-level i.e. increases the amount of output on the
58
59
60
stderr from the process.  This option can be given repeatedly.  If it
is given, lyskomd will not run as a daemon, but rather stay in
foreground mode.
Linus Tolke's avatar
Linus Tolke committed
61

Linus Tolke's avatar
Linus Tolke committed
62
63
64
65
66
Using one
.B \-d
make the process print a
.I >
for every timeout, a message for every person that is connecting or
Linus Tolke's avatar
Linus Tolke committed
67
disconnecting and a message for every successful or unsuccessful
Linus Tolke's avatar
Linus Tolke committed
68
communication to the process.
69
70
71
72
73
74
.TP
.B \-c config-file
Selects which configuration file to use (see CONFIGURATION below).
.TP
.B \-a aux-item-defs
Selects which file to read definitions of aux-items from.
75
76
77
78
79
80
81
82
83
84
.SH CONFIGURATION
The configuration file is line oriented.
Each line consists of one 
.B parameter name,
a colon, and the
.B parameter value.
Empty lines, and lines whose first non-blank character is #, are
comment lines and ignored.
The configuration file is normally found in
.B /usr/lyskom/etc/config,
85
86
87
88
89
but the exact location can be changed at compile time (for instance
by specifying
.BI --prefix= pathname
when running
.BR configure )
90
91
92
93
94
95
96
97
98
99
100
101
102
or at run time (by specifying a config file as an argument).

The following parameters can be set in the config file:
.TP
.B Locale: locale_name
Use
.I locale_name
as the locale to run in.  
This parameter is only available on systems which support the
.B setlocale()
call.  If this parameter is not set, no call to
.B setlocale()
will be made.
Linus Tolke's avatar
Linus Tolke committed
103
.TP
104
105
106
107
108
109
110
111
.B Force ISO 8859-1: bool
This option is provided for those with ancient computers that cannot
handle
.B setlocale()
properly.  If this is set, lyskomd will handle texts according to the
ISO 8859-1 (latin1) alphabet.  Default value:
.I no
.TP
112
113
114
115
116
117
118
119
120
121
.B Prefix: prefix
The default value of
.I prefix
is 
.B /usr/lyskom
(unless changed in server-config.c).
All files that the server uses are found in sub-directories of this
directory.  See FILES below.
.TP
.B Send async: bool
Linus Tolke's avatar
Linus Tolke committed
122
Do not send any non-requested messages. This disables the sending of
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
messages about events in the server to all connections.  
Use of this parameter is not recommended.  This option is on by
default.
.TP
.B Client port: portname
Listen for new clients on
.I portname,
which can be a symbolic port name (traditionally looked up in
.B /etc/services)
or a port number.  This defaults to 4894, and all clients currently
expect that number.
.TP
.B Mux port: portname
Listen for mux connections on
.I portname.
Muxes can be used to multiplex several clients on a single file
descriptor.  The mux runs as a separate process.  This was used
historically when LysKOM ran on a machine were only 20 file
descriptors coule be open at once.  The mux code has not been
released.  Send a mail to 
.B bug-lyskom@lysator.liu.se
if you need it.  The default port number is 4895.
.TP
.B Presentation of conferences: conf-no
The number of the conference where presentations should be sent.
148
149
Defaults to 1. This option is ignored in lyskomd 1.9 and later. Use
dbck or protocol A to set it instead.
150
151
152
.TP
.B Presentation of persons: conf-no
The number of the conference where presentations should be sent.
153
154
Defaults to 2. This option is ignored in lyskomd 1.9 and later. Use
dbck or protocol A to set it instead.
155
156
157
158
.TP
.B Motd-conference: conf-no
The number of the conference where "message-of-the-day" messages
should be sent.
159
160
Defaults to 3. This option is ignored in lyskomd 1.9 and later. Use
dbck or protocol A to set it instead.  
161
162
163
164
165
.TP
.B News-conference: conf-no
The number of the conference where news of interest to the readers of
this LysKOM server should be written.  This is typically a conference
with very low traffic which everyone shoule be a member of.  Clients
166
167
168
should offer new users to join it.
Defaults to 4. This option is ignored in lyskomd 1.9 and later. Use
dbck or protocol A to set it instead.
169
170
171
172
.TP
.B Message of the day: text-no
Default message-of-the-day of this server.  
The text will be showed automatically by conforming LysKOM clients
173
174
when a user logs on.  This option is ignored in lyskomd 1.9 and later. Use
dbck or protocol A to set it instead.  
175
.TP
Per Cederqvist's avatar
Per Cederqvist committed
176
177
178
179
180
.B Garb: bool
Should the database be automatically purged of old texts?  Default
value:
.I on
.TP
181
182
183
184
185
186
187
188
189
190
191
192
193
.B Never save: bool
Do not use unless you know what you are doing.
(Note: there is currently no-one in the LysKOM development group which
knows exactly what this option does!)
.TP
.B Log accesses: filename
This parameter can only be set if the server has been compiled with
.B LOGACCESSES
defined.  It will save a trace of all activity in the database to a
file, for later use in simulations et c.  
Compiling with
.B LOGECCESSES
slows the server down quite a lot, so it is normally not defined.
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
.TP
.B Data file: data_file
Part of the data base will be held in
.I prefix/data_file.
.TP
.B Backup file: backup_file
The file
.I prefix/backup_file
will always contain a complete data base, but it might be a little
outdated.
.TP
.B Text file: text_file
The file
.I prefix/text_file
holds all actual text which is written.
.TP
.B Text backup file: backup_text
When dbck is run with the
.I -g
option (see dbck(8)) it will store the previous contents of
.I prefix/text_file
in
.I prefix/backup_text.
This file is never used by lyskomd itself.
.TP
219
220
221
222
.B Log file: log_file
Log messages from lyskomd will be written to
.I prefix/log_file.
.TP
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
.B Log statistics: stat_file
Whenever lyskomd receives a SIGHUP it will append a timestamp and
a count of how many different atomic calls have been made in
.I prefix/stat_file.
.TP
.B Pid file: pid_file
When lyskomd is up-and-running it will write its pid in the file
.I prefix/pid_file.
This file is not currently used as a log file.  It is present here
only so that the updateLysKOM script can easily find out what pid the
LysKOM server has.
.TP
.B Memory usage file: mem_file
When lyskomd exits normally it appends some info on its usage of
memory to
.I prefix/mem_file.
Almost any memory leak bugs should be detectable by looking in this
file.
.TP
.B Idle timeout: idle
Number of milliseconds to sleep when there is nothing for lyskomd
to do.
.TP
.B Garb timeout: garb
Number of milliseconds to sleep when the server is garbaging texts,
but has nothing else important to do.
.TP
250
251
252
253
.TP
.B Permissive sync: bool
Turning this option on lets any session sync the LysKOM database.
Turning it off restricts the operation to LysKOM administrators.
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
.B Sync timeout: sync
Number of milliseconds to sleep when lyskomd is saving its database.
Defaults to 0.
.TP
.B Garb interval: garb_interval
Number of minutes between each garb sweep.  Defaults to 1440, that is,
a garb sweep will be run once per day.
.TP
.B Sync interval: sync_interval
Number of minutes between syncs.  Currently, lyskomd holds part of the 
data base in main memory.  It is dumped to
.I prefix/data_file
periodically.  This parameter determines the period.
.TP
.B Sync retry interval: retry_interval
If anything goes wrong while trying to dump the data base to
.I prefix/data_file
(such as if the disk is full),
lyskomd will wait for this many minutes before trying again.
.TP
.B Max conference name length: int
.TP
.B Max password length: int
Only the first eight characters of the password are currently
significant, even if this number is much larger.
.TP
.B Max what am I doing length: int
.TP
.B Max username length: int
.TP
.B Max text length: int
.TP
.B Max broadcaset length: int
.TP
.B Max regexp length: int
.TP
.B Max marks per person: int
.TP
.B Max marks per text: int
.TP
.B Max recipients per text: int
.TP
.B Max comments per text: int
.TP
.B Max footnotes per text: int
.TP
.B Max links per text: int
.TP
.B Max mark_as_read chunks: int
.TP
.B Max super_conf loop: int
.TP
306
307
308
309
310
311
312
313
314
.B Max accept_async len: int
Maximum length of list accepted in the accept_async call.
.TP
.B Max aux_items deleted per call: int
Maximum number of aux_items that can be deleted in one call.
.TP
.B Max aux_items added per call: int
Maximum number of aux_items that can be added at once.
.TP
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
.B Default garb nice: int
Each conference has a lifetime for texts written in it.  
The lifetime is counted in days, and can be set for each conference by
the administrator of the conference.
This is the default value assigned to new conferences.
.TP
.B Max client transmit queue: int
Mux number of pending data blocks in the reply queue to a client.  If
there is ever more than this many data blocks in the queue the client
will be disconnected.  Each atomic question typically generates two
data blocks.
.TP
.B Max simultaneous client replies: int
This is a performance tuning parameter of little real interest.
.TP
330
331
332
333
334
335
336
.B Open files: int
Try to persuade the operating system to allow lyskomd to have this
many open file descriptors simultaneously.  Each client that is
connected to the server occupies one file descriptor, and 
.I lyskomd
needs several file descriptors for internal purposes.
.TP
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
.B Anyone can create new persons: bool
If this is set, anyone can create a new person, even if he lacks
special bits for doing so.
.TP
.B Anyone can create new conferences: bool
If this is set, anyone can create a new conferences, even if he lacks
special bits for doing so.
.TP
.B Allow creation of persons before login: bool
If this is set, persons can connect the the server and create a new
person without logging in.  This is how new users register in open
environments.
.TP
.B Default change name capability: bool
If this is set, new users are created with the ability to change their
own name.
.TP
354
.B Ident-authentication: policy
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
Decide how strictly the server should use the IDENT protocol.
.B policy
can take any of three values:
.I off
or
.I never:
Do not use the IDENT protocol.
.I on
or
.I try:
Use it, but allow logins even if the lookup fails.
.I require
or
.I required:
Disallow connections if the server cannot find a IDENT login name.
.TP
Per Cederqvist's avatar
Per Cederqvist committed
371
372
373
374
.B Log login: bool
Should logins be logged to the log file?  Default value: 
.I off.
.TP
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
.B Cache conference limit: int
How many conference statuses the server cache should hold in main
memory.
.TP
.B Cache person limit: assign_int
How many person statuses the server cache should hold in main
memory.
.TP
.B Cache text_stat limit: assign_int
How many text statuses the server cache should hold in main
memory.
.TP
.B Echo: text_string
Write
.I text_string
in the log.
.TP
.B Jubel: pers_no text_no
State that
.I pers_no
is not allowed to create text number
.I text_no
.TP
.B Jubel: pers_no divident remainder
Say that
.I pers_no
is not allowed to create any text number
.I T
which meets the condition
.I T \% divident == remainder
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
.TP
.B Add members by invitation: bool
If this is set, then adding others as members to a conference sets the
invitation bit of the membership. If this is off, the membership bit is
set to whatever the caller specifies. The default is to set this.
.TP
.B Allow secret memberships: bool
If this is set, then memberships may be secret. Otherwise any attempt
to create a secret membership or change an existing membership to a
secret membership will fail. This is set by default.
.TP
.B allow reinvitations: bool
If this is set, then it is possible to set the invitation bit of a
membership even after it has been cleared. If it is not set, then the
invitation bit of a conference type can only be set when the
membership is created. It can be cleared at any time. This is off by
default.
Linus Tolke's avatar
Linus Tolke committed
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
.SH SIGNALS
There are some signals that have a special meaning to the LysKOM
server.
.TP
.B SIGHUP
Logs out all sessions, saves the database and exits normally.
.TP 
.B SIGQUIT
Saves the database and dump core. (This should only be used for
debugging purposes.)
.TP
.B SIGUSR1
Print statistics about how often different commands have been used
since the process started.
.TP
.B SIGUSR2
Forks a child that immediately dumps core. The main process just waits
until the child is done and then continues. (This does not work on
Suns.)
Linus Tolke's avatar
Linus Tolke committed
441
442
443
.SH FILES
.TP 20
.B /usr/lyskom
444
445
Default value of
.I prefix.
Linus Tolke's avatar
Linus Tolke committed
446
.TP
447
448
.IB prefix /db/lyskomd-data
Half of the database: all status information.
Linus Tolke's avatar
Linus Tolke committed
449
.TP
450
451
.IB prefix /db/lyskomd-texts
The other half of the database: the actual texts.
Linus Tolke's avatar
Linus Tolke committed
452
.TP
453
454
455
456
457
458
459
460
.IB prefix /db/lyskomd-backup
A backup copy of 
.I lyskomd-data.
Never, ever delete this file unless you know what you are doing, or
you may lose the entire data base.  Most of the time this is the only
complete database file!
.TP
.IB prefix /etc/pid
Linus Tolke's avatar
Linus Tolke committed
461
462
File with the pid of the lyskom-process.
.TP
463
464
465
466
467
.IB database-directory /etc/memory-usage
On normal exit, 
.I lyskomd
will append some statistics to this file.  It can be used for
detecting memory leaks.
Linus Tolke's avatar
Linus Tolke committed
468
.SH BUGS
469
470
471
472
473
474
.PP
lyskomd should re-read the config file when a SIGHUP is received.
.PP
lyskomd should terminate when a SIGINT or SIGTERM is received.
.PP
A very small memory leak still remains.
Linus Tolke's avatar
Linus Tolke committed
475
476
477
478
479
.PP
There is no practical handling of security.
.PP
The choice of asynchronously issued messages is not very good.
.PP
480
481
482
483
484
485
486
487
488
489
490
491
It uses too much memory.
.SH HISTORY
In 1990, Per Cederqvist <ceder@lysator.liu.se> and Peter Eriksson
<pen@lysator.liu.se> and a few other persons started to write the
server.  It was operational in the summer of 1990, even though the
members of Lysator discovered a thing called MUD.  We started using
RCS on 20 May 1991. The first release was made on 16 Sept 1991. 
Around that time we switched from RCS to CVS, and ceder started to
write pcl-cvs (a GNU Emacs front-end to CVS) instead of LysKOM. After
a while, he started writing Bugtrack, to be able to handle all bug
reports he recieved about pcl-cvs.  He hopes to be able to devote some
more time to LysKOM in the future.
Linus Tolke's avatar
Linus Tolke committed
492
.SH NOTE
493
Contact Per Cederqvist if you want commercial support of LysKOM.