UNIX Process Servers
The UNIX process server is implemented on UNIX by a native platform agent. The Redwood Server platform agent for UNIX is used on all supported OS platforms where the native API is UNIX. This means that Linux and Apple macOS are supported via the UNIX agent. Other operating systems are supported as well, see HP OpenVMS and Microsoft Windows (Advanced) for those.
note
The platform agent software is shipped with Redwood Server and can be downloaded in "Configuration > Software".
See Creating UNIX Process Servers (Advanced) for detailed instructions for downloading and installing the software without the process server wizard.
Active vs Monitoring Platform Agents
You can have active and monitoring platform agents.
Active platform agents require a license and allow you to:
- schedule workload
- use file events
- monitor system usage
Monitoring platform agents on Microsoft Windows and UNIX do not require a license and allow you to monitor the system and its processes, only. Instructions for creating a monitoring-only platform agent can be found in the Creating a Monitoring Platform Agent topic.
Structure
On UNIX the platform agent is started by the scheduler
script located in ${InstallDir}/${version}/etc
. That script starts all platform agent instances found in the various installation trees. The scheduler
script is started at system boot time by a link from UNIX system dependent files, usually /etc/init.d/
scripts. The scheduler
script invokes the platform-agent
script. You should not run the platform-agent script by hand, that's what the scheduler
script is for. The scheduler
script needs the system character set in its environment; the character set must be convertible to UTF-8 using I18N
tools. You set the LANG
, LC_CTYPE
, or LC_ALL
environment variable to a UTF-8
compatible locale. For example, you unset LC_ALL
and set LANG
to en_US.UTF-8
or ISO-8859-15
. Note that LC_ALL
takes precedence over LANG
and LC_CTYPE
.
Each platform agent instance is represented by two or three continuously running processes, shown here in ps
form:
\_ /opt/redwood/agent/9_2_8_20230928_10/bin/network-processor -p /opt/redwood/agent/etc/pid/default/default.pid -i default
\_ /opt/redwood/agent/9_2_8_20230928_10/bin/network-processor -p /opt/redwood/agent/etc/pid/default/default.pid -i default
The platform-agent
and top level network-processor
are present from the start, the second network processor instance is created as soon as the platform agent is configured by the process server. The platform agent is used to guard over the network processor: if it dies unexpectedly it will restart it. It also plays a role in Automatic Updating of the agent. The second instance of the network processor is used to verify that the network processor can create a child process and to guard that the OS returns proper data for child processes. All the rest of the work is done by the primary network processor, except if processes are started. For each process a job-processor
is started.
Platform process servers that schedule workload or use file events require at least one of the following keys:
- ProcessServerService.External.limit - the total number of external process servers (Platform agents, distinct web service endpoints, and SAP connectors).
- ProcessServerService.OS.limit - the total number of platform agent process servers.
UNIX processes are executed by a platform agent. It executes the code in the process definition in a specific environment as a specific user. Note that on UNIX systems, when setting resource limits for a process, it is important to know that the limits that apply are those that are in effect for the parent process and not the limits for the user under which the process runs. This means that the resource limits of the user that starts the platform agent are in effect, regardless of which user the process actually runs as.
The platform agent may run on the same machine as the server, or on any other machine on the network. UNIX processes contain shell scripts in languages such as KSH, BASH, CSH and Perl.
Installing a Platform Agent
note
When installing a platform agent on an SAP application server, Redwood recommends to name the process server <SID>_<APP_SVR>_PlatformAgent
, where <APP_SVR>
is the hostname of the application server.
The installer is named individually for each operating system / platform combination as follows:
platform-agent-<OS>-<platform>-<version>.bin
note
When you transfer the bin
file via FTP, you must use binary mode.
The installer accepts the following switches:
Switch | Description | Example |
---|---|---|
-ac, --enable-server-acl <Y/N> | Lock platform agent to the central Redwood Server | -ac Y |
-ai, --agent-initiated | Communication will be initiated by the agent | -ai |
-b, --enable-autoboot <Y/N> | Automatically start agent on system-boot | -b Y |
--confirm | Enforce confirmation of predefined values | --confirm |
-d, --destination <path> | Destination (local path) | -d /opt/redwood/agent |
-f | path to log file | -f /opt/redwood/installer.log |
--force | Overwrite any existing files | --force |
-h, --help | Show this help | -h |
-i, --instance <name>[:<port] | Instance name and port; the port will be used by the platform agent (except for agent-initiated agents) | -i prd-kubernetes:1556 |
-l | Verbosity level to use; defaults to info. | -l debug |
--language | Select the language for the installer (en, de, nl, and fr are supported) | --language de |
-m, --user-switch-mode | Mechanism used to switch users; accepts root, plain, setuid, or sudo | -m sudo |
-pr, --proxy <user:password@host:port> | Proxy information | -pr https://pxuser:horseStackMonkey@gatekeeper.local:80 |
-ps, --process-server <process-server> | Name of the process server | -ps MSLN_UNIXS1 |
-pw, --password <password> | password of the user | -pw horseStackPompey |
-ql, --queue-list <queue-list> | Comma-separated list of queues the process server serves | -ql "UNIXGeneric,Kubernetes" |
-rp, --register-properties <path> | Path for register.properties file | -rp /opt/redwood/prd-kubernetes.properties |
-rs, --registration-server http[s]://<server>:<port> | URL of the central Redwood Server | -rs https://pr1.example.com:50300/redwood |
-u, --unattended | Unattended install | -u |
-un, --username <name> | Username of a Redwood Server user with privileges to create a process server (such as scheduler-administrator or redwood-administrator ) | -un Administrator |
-w, --run-as <username> | The default user to run processes as | -w redwood |
TLS Environment Variables
note
Parameters that are set on the command line will not be verified by the installer, unless you specify the --confirm
switch.
Use the switches as follows:
platform-agent-<OS>-<platform>-<version>.bin <switch> <value> <switch> <value>...
For example:
sudo ./platform-agent-linux-x86_64-9_2_8_20230928_10.bin -d /opt/redwood/prod -i Example -m sudo -b Y -ac Y
root.sh
When you run the installer as an unprivileged user, a file named root.sh
located in the installation directory is created. This file must be executed as superuser (root) to complete the installation.
Environment Variables
Environment variables allow you to set installation-specific and registration-specific settings. Installer switches override the environment variable, if specified.
The installer also accepts the following environment variables:
INSTLANG
- The language of the installer [EN|NL|DE|FR]INSTALLDIR
- The installation directoryINSTANCE
- The name of the Instance.USERSWITCHMODE
- The mechanism to use for user switching [plain|setuid|root|sudo]RUNAS
- The user to run as.AGENTPORT
- The numeric port on which the platform-agent will listenSTARTUP
- Autoboot [Y|N]ALLOWUPDATE
- Autoupdate [Y|N]
You can specify multiple switches as follows:
INSTLANG=DE INSTALLDIR=/opt/redwood/prod INSTANCE=Example USERSWITCHMODE=sudo STARTUP=Y SERVERACL=Y platform-agent-<OS>-<platform>-<version>.bin
INSTLANG
The language the installer uses is derived from your locale. To override the language derived from the locale you can set the INSTLANG
environment variable to a two letter language code. Languages supported are EN
(English), FR
(French), DE
(German) and NL
(Dutch). If an unknown language is specified the installer will fall back to using English.
INSTLANG=FR platform-agent-<OS>-<platform>-<version>.bin
INSTALLDIR
The installation directory to use. The user executing the installer must have write permissions to this directory.
INSTDIR=/opt/redwood/agent platform-agent-<OS>-<platform>-<version>.bin
INSTANCE
The name of the instance for this platform agent.
INSTANCE=prd-postgre platform-agent-<OS>-<platform>-<version>.bin
USERSWITCHMODE
The user switch mode to use, defaults to setuid
.
USERSWITCHMODE=sudo platform-agent-<OS>-<platform>-<version>.bin
RUNAS
The user the platform-agent runs as. If the user switchmode is plain, then all processes will be run as this user.
RUNAS=redwood platform-agent-<OS>-<platform>-<version>.bin
AGENTPORT
The numeric port used by the platform-agent; you must specify a port number, port names are not supported.
AGENTPORT=1551 platform-agent-<OS>-<platform>-<version>.bin
STARTUP
This controls the startup of the platform agent when the server starts.
STARTUP=Y platform-agent-<OS>-<platform>-<version>.bin
ALLOWUPDATE
This controls automatic agent updates when the central Redwood server is updated.
ALLOWUPDATE=Y platform-agent-<OS>-<platform>-<version>.bin
Registration Environment Variables
REGISTER
- Register a process server [Y|N], this needs to be set to Y for the environment variables below:SERVERNAME
- The hostname of the serverSERVERPORT
- The port on which the server is listeningSERVERUSERNAME
- The user account to login withSERVERPASSWORD
- The password for this userPSERVER
- The Name of the process server to registerSERVERACL
- Lock the platform agent [Y|N]
Example
The GNU/Linux installer for x86 platforms, used with switches to perform an unattended installation in German with processes run as user example
with security option suid
.
$ platform-agent-linux-x86-9_2_8_20230928_10.bin -u -l DE -w example -m suid
Platform independent configuration instructions can be found in the Configuring Platform Agents section.