To start SALOME a new approach is proposed, based on Salome Application Concept. The underlying mechanism aims at:
Usage of salome
command is:
Commands are:
start
context
shell
connect
kill
<port(s)> killall
test
info
help
To start an application, use
This command is equivalent to runAppli. It accepts the same options that can be listed using
To initialize an environment, use
This command is equivalent to runSession. It accepts the same options that can be listed using
To connect a Python console, use
There is no options to this command. It asks user which SALOME instance to connect to.
The –extra_env
option is used to identify a list of batch files (or directories containing such files) that must be considered to create the SALOME execution context. Typically on linux these files are shell scripts that modify the global environment. The salome command determines environment changes implied by running these files to initialize SALOME context. Note that this functionality is not the recommanded way to set SALOME context ; it is provided for backward compatibility and convenience ; prefer Context files management solution.
The –config
option is used to identify the list of configuration files or directories to be used for SALOME context creation. When this option is given, only files provided by user are considered. If user does not specify any context file SALOME will rely on context files detected in the env.d application folder. Two file formats can coexist, with a .cfg or .sh extension that are associated with the new and the former start mechanism, respectively.
The salome
command is based on the .cfg format; however, it is able to interpret (partially) the .sh format for software backward compatibility. The use of .cfg format is highly recommended with the new launcher.
It is possible to add context files in the env.d folder; the strategy followed by salome
for these files is as follows. All files with .cfg extension are taken into account. Files with .sh extension are taken into account only if there is no file with the same name with a .cfg extension, for example:
Considered .sh files are automatically translated to .cfg format (the .cfg file is not written to disk). The translator is not as complete as Unix Shell interpreter; malfunctions may emerge in case of unrecognized syntax.
On the one hand, runAppli options allow to give a list of Python scripts to be run after application startup; but it is not possible to specify parameters for these scripts. On the other hand runSession can run one script but it admits several parameters.
The salome
command combines the two solutions: you can specify multiple scripts, each can have several parameters. For this, the following syntax must be used; to provide parameters to a script from the command line, we write script.py args: arg1, arg2, ..., argn
The script parameters must be separated by commas and no spaces are allowed (except between the script name and the beginning of its parameters). For example, the following call will run sequentially three scripts, which will wait 5 seconds, say hello, and calculate 1 +2 +3:
The command salome
shell
allows a double dash syntax (- -) to indicate an extra command to be run "as is". It allows calling a extern program or system command having options and arguments that contain simple dash (-) characters. The syntax is
For example:
A SALOME instance uses a dedicated TCP port number on which the CORBA name server of each SALOME application will connect. This refers to a technical solution that allows multiple software components belonging to the same application to communicate with each other. This approach is a standard used when multiple applications are running at the same time (components should not interfere with each other), and when application components can be distributed across multiple machines.
Each SALOME application owns a specific port number. This port is determined automatically when application starts. When multiple applications are started at the same time, assigning a number to each port could be conflicting, and the same port could be assigned to several applications. To prevent from such a situation, a Python object named Portmanager
has been implemented (Linux only). In SALOME 7, this object is available when activating a specific compilation flag of KERNEL module:
Since SALOME 7.5.0 this flag is switched ON by default. Several instances can be safely started concurrently. For example in an automated process, calling several times the following commands (WORK_DIR variable changes at each call):
With salome
shell
user can connect to a SALOME instance running on a remote computer. In this case the options -p PORT
, -m MACHINE
, -d DIRECTORY
and -u USER
must be provided. Moreover syntax out:res1,res2,...
can be used to get results back from remote machine. For example:
In this example user myself
connects to remotemachine
to run the script concatenate.py
in a SALOME instance running on port 2810
; the script takes two input parameters and produces one result file. The script and the input files are on the local computer. They are copied to the remote machine using a secure connection ; results produced on remote computer are transferred on the local machine using the same protocol. Script, input files and results are removed from remote machine.
A launcher is a Python module that contains a single def main(args)
function to sequentially execute the following operations:
This module is generally used as a script, run from a shell command line. It thus contains the directive:
Finally the module can be called from another script, for example a test script. Considering a Python variable path_to_launcher
that identifies the absolute path to a launcher, one can write:
An API named SalomeContext
, written in Python, allows for the construction of SALOME execution context and for application start. Each launcher creates a SalomeContext
object, and optionally gives it a list of configuration files to describe the context:
A launcher can also directly call the API functions to define, suppress or extend (add information) an environment variable:
The addToVariable
function consists in prefixing the variable name with the given value inserting a separator between the two items.
Unix system variables PATH, LD_LIBRARY_PATH (DYLD_LIBRARY PATH for BSD) and PYTHONPATH can only be extended:
Once the context is created, the application is started:
The args
list corresponds to commands and options given to salome
launcher.
It is possible to write specific context files provided that the syntax defined hereinafter is respected; their analysis by the new SALOME start mechanism uses tools from the Python standard API.
A context file starts with a section title, and continues with the definition of different context variables. The section title is a string enclosed by brackets, for example [My context]
.
A variable can be defined with a declaration variable=value
:
A variable can be defined relative to another one; this substitution corresponds to the syntax %(variable)s
:
In this example QTDIR will equal ${HOME}/salome/prerequisites/install/Qt-484
Specific system variables such as PATH, LD_LIBRARY_PATH, DYLD_LIBRARY_PATH and PYTHONPATH are extended with ADD_TO_variable: valeur
.
A variable can be unset with UNSET: variable
: