Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
chattahoochie(8)	  BSD System Manager's Manual	      chattahoochie(8)

     chattahoochie -- KQueue-Based Small Group Chat Server

     chattahoochie [-i <interface> -p <port> -m	<max-clients> -u <user>	-g
		   <group> -x]

     Chattahoochie is a	plain text small group chat server intended for	use
     with 8-bit	character sets.	 On local networks telnet or netcat can	be
     used as clients.  By default Chattahoochie	accepts	a maximum of five con-
     nections at any one time.	The maximum number of connections may be al-
     tered with	the -m option.	Chattahoochie will drop	connections which have
     been idle for 20 minutes.

     All data exchanged	between	clients	and server is sent in the clear	and is
     thus readable by any third	party whose equipment it traverses.  For use
     over the internet it is recommended chattahoochie be configured to	listen
     on	a loopback interface.  Secure shell clients can	then be	used to	con-
     nect to the server	host.  How to do this is described below in the	sec-
     tion titled SECURING CONNECTIONS.

     Before inputting chat data, a client should lock the display by entering
     a blank line to prevent the display from scrolling.  The display can be
     unlocked by entering another blank	line.  Up to 500 incoming messages
     will be queued for	the client while the display is	locked.

     Create a "chat" user on the server	host with the adduser utility.	Add a
     Match directive to	the very end of	/etc/ssh/sshd_config to	run netcat as
     an	intermediary for "chat"	logins.	 It is important to place the Match
     directive at the end of the file to avoid affecting other logins.

     Match User	chat
	ForceCommand nc 8000

     Restart sshd with

     kill -HUP `cat /var/run/`

     Check to make sure	the daemon has restarted before	you logout of your
     current ssh session!  If you make a typo in sshd_config, sshd will	fail
     to	restart, silently, and you will	no longer be able to connect to	the
     system as any user!  To verify sshd has restarted,	open another xterm or
     virtual console and attempt to login as the "chat"	user:


     Create the	file /home/chat/.hushlogin to suppress printing	of the last
     login time	and message of the day.

     Chattahoochie writes its pid into /var/run/ if it	can
     (ie., it is started as root), and may be stopped with a SIGTERM.  A rc.d
     script is provided	and installed in /usr/local/etc/rc.d/.	Add the	fol-
     lowing lines to /etc/rc.conf to start chattahoochie on system boot-up.
     Replace the items in brackets with	values appropriate for your system,
     and/or add	or remove options as suits your	system.	 The available options
     are described in full at the end of this manual page.

     chattahoochie_flags="-u <user> -g <group>"

     Once your /etc/rc.conf is configured you may start, stop, or restart
     chattahoochie, or determine if it is running with the following commands:

     /usr/local/etc/rc.d/chattahoochie start
     /usr/local/etc/rc.d/chattahoochie stop
     /usr/local/etc/rc.d/chattahoochie restart
     /usr/local/etc/rc.d/chattahoochie status

     If	you do not want	chattahoochie started on system	start, then set


     and use the following commands:

     /usr/local/etc/rc.d/chattahoochie forcestart
     /usr/local/etc/rc.d/chattahoochie forcestop
     /usr/local/etc/rc.d/chattahoochie forcerestart
     /usr/local/etc/rc.d/chattahoochie forcestatus

     If	the server encounters an error reading or writing data to or from a
     client, or	runs out of memory, the	particular connection which generated
     the error will be dropped.	 All other errors will be logged via sys-
     log(3), and may be	found in /var/log/messages.

     The following arguments are recognized.  They are all optional.

     -p	 The -p	option specifies the port to listen on.	 This defaults to 8000
	 if not	specified.

     -i	 By default, chattahoochie accepts connections on all interfaces it
	 can find capable of IPv4 or IPv6.  The	-i option, when	present, over-
	 rides this behavior, by limiting chattahoochie	to accepting connec-
	 tions from a specified	interface only.	 The option accepts the	IP ad-
	 dress of the desired interface	as an argument.	 The address must be
	 expressed in the presentation format for either IPv4 or IPv6.

     -m	 The -m	option specifies the maximum number of clients which may be
	 connected at any one time.  If	not specified, this value defaults to


     -g	 The -u	and the	-g options may be used to specify the user and group
	 for the server	to change to after it has bound	to the listening
	 socket.  If not specified, both values	default	to "nobody".  Note
	 that in order for the server to change	user the server	must be
	 started as root.  If not started as root, two error messages will be
	 syslog()ed at start-up, complaining about the inability of the	server
	 to change user	and group.  You	can suppress them by providing values
	 to -u and -g to override the default "nobody" with the	actual user
	 and group under which the server runs.

     -x	 The -x	option,	if present, prevents chattahoochie from	becoming a
	 daemon.  It will then run in the foreground of	the terminal where it
	 was started, and may be stopped with signals (ie., Control-C).	 The
	 server	also will not write its	pid to /var/run/ when
	 the -x	option is used.

     James Bailie <>

				  Oct 6, 2013


Want to link to this manual page? Use this URL:

home | help