.\" $Id: lyskomd.8,v 1.22 1995/11/08 21:32:38 ceder Exp $ .\" Copyright (C) 1991, 1994 Lysator Academic Computer Association. .\" .\" 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. .\" .\" $Id: lyskomd.8,v 1.22 1995/11/08 21:32:38 ceder Exp $ .\" $Date: 1995/11/08 21:32:38 $ .TH lyskomd 8 "January 12, 1994" "Lysator" .SH NAME lyskomd - LysKOM server .SH SYNOPSIS .B /usr/lyskom/bin/lyskomd [ .B -d ... ] [ .B config-file ] .SH DESCRIPTION This documents lyskomd release 1.8.0. lyskomd is a LysKOM server. .PP The server reads a configuration file (see CONFIGURATION below) and then listens for connections on the given ports (defaults are 4894 for the .I client_port and 4895 for the .IR mux_port ). .SH OPTIONS .TP .B \-d Adds one to the debug-level i.e. increases the amount of output on the 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. Using one .B \-d make the process print a .I > for every timeout, a message for every person that is connecting or disconnecting and a message for every successful or unsuccessful communication to the process. .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, but the exact location can be changed at compile time (for instance by specifying .BI --prefix= pathname when running .BR configure ) 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. .TP .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 .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 Do not send any non-requested messages. This disables the sending of 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. Defaults to 1. .TP .B Presentation of persons: conf-no The number of the conference where presentations should be sent. Defaults to 2. .TP .B Motd-conference: conf-no The number of the conference where "message-of-the-day" messages should be sent. Defaults to 3. .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 should offer new users to join it. Defaults to 4. .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 when a user logs on. There is a question in protocol A which changes this number, but (currently) a motd set by the protocol will be forgotten the next time the server is restarted. This may change in the future. .TP .B Garb: bool Should the database be automatically purged of old texts? Default value: .I on .TP .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. .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 .B Log file: log_file Log messages from lyskomd will be written to .I prefix/log_file. .TP .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 .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 .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 .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 .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 .B Ident-authentication: policy 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 .B Log login: bool Should logins be logged to the log file? Default value: .I off. .TP .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 .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.) .SH FILES .TP 20 .B /usr/lyskom Default value of .I prefix. .TP .IB prefix /db/lyskomd-data Half of the database: all status information. .TP .IB prefix /db/lyskomd-texts The other half of the database: the actual texts. .TP .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 File with the pid of the lyskom-process. .TP .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. .SH BUGS .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. .PP There is no practical handling of security. .PP The choice of asynchronously issued messages is not very good. .PP The so called "data base" is a joke. .PP It uses too much memory. .SH HISTORY In 1990, Per Cederqvist and Peter Eriksson 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. .SH NOTE Contact Per Cederqvist if you want commercial support of LysKOM.