Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

This is an old revision of the document!


Environment Variables

This page describes the environment variables of your operating system/shell that Synchronet may use.

Paths in the environment variable values may or may not end with a path delimiter (e.g. / or \).

SBBSCTRL

The SBBSCTRL environment variable should be set to the path of your Synchronet ctrl directory, especially if Synchronet is not installed in the default installation location (e.g. /sbbs/ctrl).

If this variable is not set, most Synchronet programs allow passing the path to the ctrl directory as the last argument.

SBBSEXEC

The SBBSEXEC environment variable may be set to the path of your Synchronet exec directory. This may be needed for some development situations (e.g. where your Synchornet exec directory is not ../exec relative to your Synchronet ctrl directory). Most sysops will not need to set this environment variable.

SBBSNODE

The SBBSNODE environment variable should NOT be set by the sysop. This variable is set dynamically1), by Synchronet, for the use of external online programs (e.g. doors).

Setting

Windows NT

For Microsoft Windows NT-based operating systems (this includes Windows 2000, XP, Vista, and Windows 7), goto the Windows Control Panel->System->Advanced->Environment Variables->System Variables->New... and set

  • Variable name: SBBSCTRL
  • Variable value: c:\sbbs\ctrl

(replace c:\sbbs\ctrl with the full path to your ctrl directory)

Windows 9x

For Mirosoft Windows 9x-based operating systems, edit your C:\AUTOEXEC.BAT file and add the line:

  SET SBBSCTRL=c:\sbbs\ctrl

(replace c:\sbbs\ctrl with the full path to your ctrl directory)

bash/sh

For Unix bash/sh: In the home directory of the user the BBS will be running as, edit the file named either .profile or .bash_profile as appropriate and add the line:

  SBBSCTRL=/sbbs/ctrl && export SBBSCTRL

(replace /sbbs/ctrl with the full path to your Synchronet ctrl directory)

/etc/profile

In Debian and Debian-based Linux distributions (e.g. Ubuntu), you can also set environment variables in your /etc/profile file (and/or ~/.profile), like so:

export SBBSCTRL=/sbbs/ctrl

env

You may also use the env utility to set an environment variable for a specific program invocation:

env SBBSCTRL=/sbbs/ctrl /sbbs/exec/sbbs

Note: You can use the same syntax without the env part. The environment variable(s) specified will only be set for the life of the process being invoked.

sudo

When using the sudo command to execute a Synchronet program with elevated (e.g. root) privileges, you may need to pass the -E option to preserve the environment variables set in the parent shell:

sudo -E sbbs

Testing

You can use either of the following command-lines to test if a particular environment variable is set correctly (the environment variable's current value should be printed in response to either):

  • echo $SBBSCTRL
  • printenv SBBSCTRL

csh/tcsh

For Unix csh/tcsh: Again, in the home directory of the user the BBS will be running as, in the file named .tcshrc or .cshrc as appropriate add the line:

  setenv SBBSCTRL /sbbs/ctrl

(replace /sbbs/ctrl with the full path to your ctrl directory)

Automatic

When the Synchronet Terminal Server executes an external program (e.g. door game, OS command shell, timed events, file transfer protocol drivers, etc.), it will set the following environment variables for the child process to utilize:

Variable Name Description Example
DSZLOG Path to the current protocol driver log file c:\sbbs\node1\protocol.log
SBBSNODE Path to the current node directory c:\sbbs\node1\
SBBSCTRL Path to the Synchronet ctrl directory c:\sbbs\ctrl\
SBBSDATA Path to the Synchronet data directory c:\sbbs\data\
SBBSEXEC Path to the Synchronet exec directory c:\sbbs\exec\
SBBSNNUM Current node number 1
PCBNODE Current node number (only for DOS programs) 1
PCBDRIVE Current node drive letter C:
PCBDIR Current node path (sans drive letter) \SBBS\NODE1\
DAY Current day of the month (01-31 ) 01
WEEKDAY Current day of the week abbreviation Mon
MONTHNAME Current month name abbreviation Jan
MONTH Current month number (01-12) 01
YEAR Current year 2017

These variables can be used by shell scripts, batch files and programs, as needed.

1)
to the path of the current node directory