This is an old revision of the document!
Table of Contents
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.