texisd - The Texis Server Daemon


texisd [-o[logfilename]] [-l] [-a[username]] [-pport]
       [-- [-n] [-pprofilename] [database]]
texisd [-pport] [-k]

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).


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.


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.


Allow anonymous logins. The login name for for anonymous login will be username, or "" if username is not specified.


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-).


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


No profile read on startup. Normally texisd will read a Metamorph profile to get default parameters for the SQL like statement.


Read profilename instead of the default Metamorph profile to get default parameters for the SQL like statement.

Metamorph profiles, TCP/IP services, your system's user account maintenance manuals.


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.

Copyright © Thunderstone Software     Last updated: May 19 2023
Copyright © 2023 Thunderstone Software LLC. All rights reserved.