SYNOPSIStexisd [-o[logfilename]] [-l] [-a[username]] [-pport]
[-- [-n] [-pprofilename] [database]]
Or:
texisd [-pport] [-k]
DESCRIPTION
The Texis daemon, texisd
, allows client programs to make SQL
queries against Texis databases. It allows for tight or loose login
control, anonymous (no password) login, and optional logging of all
connections. By default it listens for client connections on TCP/IP
service port 10002. All data to be made available to clients must be
accessible by the server process. Conversely, all data accessible by
the server will be available to its clients (depending on who they login
as).
When the server daemon is executed it first kills any previous copy of
itself that is running on its port. It then creates an id file in
/tmp
that contains the process id of itself so that it may be
killed by the next server invocation, if any. The format of the
filename is /tmp/.nnn999.pid
where nnn
is the name of the
server and 999
is the port it is listening on. (e.g. the
default file would be /tmp/.texisd10002.pid
. If the Texis daemon
is being run from a system startup script its id file should be deleted
before running it. This will prevent inadvertent killing of an
unrelated process. See the -k
option, described later, for a
simple way to kill a running server.
The server will accept an unlimited number of simultaneous connections. For each connection it forks a new process. Each fork, exits when its connection is closed.
The server handles user logins in one of two ways. When texisd
is run as root
it behaves much as the normal system login. The working
directory, user id, and group id are changed to that of the user logging
in. There must be an entry in /etc/passwd
or the NIS
database and the
correct password must be provided for a user to log in. The user may
request a group other than the default specified for it. The specified
group must be one that the user is a member of.
If anonymous logins are enabled using the -a
option the anonymous
user must be a valid user on the system, but may use any or no password
to log in. In addition to the above login actions, the root directory
will be reset to the anonymous user's login directory by performing a
chroot()
system call.
When texisd
is not run as root
it behaves much as above except
that the user and group ids are left as that of the user that executed
the daemon. Therefore logging in as anyone but that user is likely to
fail because of lack of permissions. Anonymous login, if enabled, is
also handled differently. The anonymous user need not be a valid user
on the system (it may even be an empty string ""). And the working
directory is set to what it was when the server was executed.
The same user name and password used to log in will be used to authenticate the user against Texis databases. If the user name is not empty ("") databases will be accessed using Texis permissions Therefore there must be a matching record in the SYSUSERS Texis table of any database that user is allowed to access. If the user name is empty then the username defaults to PUBLIC.
When a client connects to the Texis server, the server reads a Metamorph
profile from the current
directory to get default parameters for the SQL like
statement.
The profile is named profile.mm3
. If there is no profile,
internal defaults are used. This behavior may be overridden by using
the -n
or -p
options as described later.
Options for texisd
are divided into two groups. The first group
controls network and user login behavior. The second group controls
Texis behavior. If options from the second group are used they must be
separated from previous options with a double dash (--
).
Network and user control options
Square brackets ([]
) indicate optional items and are not entered
on the command line. Options are preceded by a dash (-
) and may
not be grouped together. There should not be any space between an
option letter and its argument (if any).
-o[logfilename]
Send output to logfilename
. If logfilename
is not
specified output is sent to the standard error output. By default the
server has no output, except for catastrophic error messages, unless the
-l
option is used.
-l
Log logins. Logins are recorded one per line with the client machine,
username, time, and date of login followed by ok
or
failed
. The log will be sent to the standard error output unless
the -o
option is used.
-a[username]
Allow anonymous logins. The login name for for anonymous login will be
username
, or ""
if username
is not specified.
-pport
Change the TCP service port to listen to for client connections. By
default texisd
listens on port 10002.
port
may be numeric indicating a specific port number or may be a
symbolic name that is present in the local /etc/services
file or
the NIS service maps.
port
should be a dash (-
) if the server is being executed
from inetd (e.g. -p-
).
-k
Kill the server that is currently running and quit. Be sure to use the
-p
option before this option if the server you wish to kill is on
a different port than the default. The server will also respond to a
normal kill
command. The server id file, described earlier,
should be deleted if the server is killed not using this option. This
will prevent inadvertent killing of an unrelated process.
Texis control options
-n
No profile read on startup. Normally texisd
will read a
Metamorph profile to get default parameters for the SQL like
statement.
-pprofilename
Read profilename
instead of the default Metamorph profile to get
default parameters for the SQL like
statement.
SEE ALSO
Metamorph profiles, TCP/IP services, your system's user account
maintenance manuals.
EXAMPLEtexisd
runs the server with all default behavior.
texisd -p9876 -l -o/tmp/texislog
runs the server on TCP service port 9876 and logs logins to
/tmp/texislog
.
texisd -l -o/tmp/texislog -- -p/usr/local/morph3/profile.mm3
logs logins to /tmp/texislog
and uses
/usr/local/morph3/profile.mm3
as the Metamorph profile.
texisd -a
texisd -aanonymous
enables anonymous login as ""
and anonymous
respectively.
texisd -k
texisd -p9876 -k
kill a server on the default port and port 9876 respectively.