Best Practices and How-to for Administration of SLC Servers on Linux
SASAUTO and AUTOEXEC Processing for SLC Servers under Linux
Randy Betancourt
Updated: August 2025
Context:
SLC provisions three deployment models, Windows Desktop, SLC server-based and SLC Hub.
SLC server-based is the traditional client/server deployment where each user starts their own private SLC process on the server. Every SAS language program must contain all definitions for access to various resources that program depends on.
In contrast, SLC Hub establishes a collection of managed services where users connect to an ‘orchestration layer’ and individual SAS programs/workloads are distributed across a set of load-balanced worker nodes in a grid configuration. SLC Hub enables governance by establishing global metadata objects like Authentication objects, database connection objects, and resource definition, that users reference as objects in their SAS programs without needing to store credentials or resource definitions in individual programs. In addition, SLC Hub is highly scalable and designed to carry large SAS processing workloads.
In both the SLC server-based configuration and SLC Hub configuration, (Hub worker nodes), users or processes initialize a SLC process which in-turn launches a per-user instance of the SLC image. Regardless of how the SLC process is launched, understanding the overall configuration and customization points is required for SLC deployments.
It is crucial the administration team understand the phases for SLC execution and timing as well as the control points for each of process phase. SLC execution phases are shown in Table 1.
Syntaxchecking | syntaxscanformacroexpansion | SASmacroprograms,andSASAUTOS |
|---|
| | |
Compilation | User's macro variables are resolved to dynamicallyinjectexpansionresultsinto usercode andissenttotheprogramstack. Users macro debuggingrequires understandingthetimingforcompileand executionphases. | SASmacroprograms,andSASAUTOS |
Execution | Executeuserprogramcallsserviceslike authentication,database connect/handshake | sastraceoptionsfordiagnosingconnection issue |
Termination | disconnectsfromresources,removes tempspace,exitpointforpassingSLC program condition code to caller | -worktermdirectiveinaltairslc.cfgand altairslc_config.slc |
Table1.SLC Execution Phases and control points
Purpose
The purpose of this document is to describe basic configuration management for the deployment of SLC. The topics covered are:
- Understanding the SLC execution process
- Understanding AUTOEXEC processing and configuration for environment tailoring and controlling execution environment
- Defining SASAUTOs and SASAUTO search paths. Setting up the Autocall macro library significantly improves programmer productivity by managing and standardizing the organization’s existing macro programs. This also represents a
quality control point ensuring uniformity of the SLC execution environment across all users. - How to customize environment variables accessible by the SLC execution process. Most external database connections communicate with consumers by establishing a set of well known environment variables. Using altairslcen.sh shell script
enables a reliable method to inject environment variable key pairs into the SLC execution environment. - Controlling global options to ensure a common SLC execution environment is
available to all users. At initialization time SLC launches with a set of global options read during the SLC initialization phase. Users can alter these options.
Administrators can control which options users are allowed to override.
Passing Environment Variables to SLC
SLC connection to databases and similar services rely on injecting a prescribe set of environment variable/valuepairs into the execution stack. Some of the environment variable definitions defined to SLC include well-known variables like:
$LD_LIBRARY_PATH
$ODBCINI
$ODBCINSTINI
$ODBCSYSINI
Environment Variable File Location
PrimaryConfigurationFile:
- Path:/opt/altair/slc/2026/altairslcenv.sh
- Purpose: Automatically executed by SLC at process initialization to pass environment variables into the execution stack
- Format: Standard bash shell script with export statements
File Permissions and Ownership
Required permissions for automatic execution.
sudochmod755/opt/altair/slc/2026/altairslcenv.sh
sudochownroot:root/opt/altair/slc/2026/altairslcenv.sh
Verifying correct permissions
ls-la /opt/altair/slc/2026/altairslcenv.sh
Expected output:
-rwxr-xr-x1rootroot[size][date]altairslcenv.sh