Introduction
The Process Manager is the component responsible for launching and
controlling processes in the ATLAS/TDAQ system. It replaces the previous
pmg
package. The documentation describing the Process Manager
functionalities and features can be found in
doc/Design.doc.
A detailed description of all the classes can be found in
doxygen.
Process Manager binaries and
helpers
- pmgserver
- It runs the Process Manager server: it creates and manages
Process Manager references, interacts with clients and takes care of
communicating with IS, RM and AM.
- pmglauncher
- It handles each process managed by the Process Manager
system: it is responsible for starting, monitoring and terminating a
single process.
- An instance of the pmglauncher
exists for every process started by the Process Manager system.
- The user should not run this program since it is started by
the Process Manager system.
- PMGLauncher
- Simple
application whose task is to exec the pmglauncher.
- When owned by root and running with the setuid bit it takes care of
setting the right user for the final process.
- The user should not run this program since it is started by
the Process Manager system.
- DescriptionTest
- Test application for the ProcessDescription
and ProcessDescriptionList
classes: it starts/stop some processes and generates callbacks when
the process status changes.
- It takes the following arguments:
- -N
procs
number of processes per loop (1 - 3)
- -n
loops
number of loops
- -t Timeout Max
time to wait to kill processes
- -a AppName Radix to built application
names (i.e., AppName_1,
AppName_2, AppName_3)
- -e ExecName Executable name (full path)
- pmg_killall_everywhere
- It gets from the
global IPC server the list of all the registered ProcessManager
servers and asks all of them to kill all the processes.
- pmg_killall_on_host
- It asks the Process Manager system to kill all the
applications running on a host.
- It takes the following arguments:
- -H hostname full host name
- -p partition partition
name of the processes to kill (optional)
- pmg_kill_partition
- It looks up in the IPC server which Process Manager servers
include processes in the passed partition and asks them to kill the
partition.
- It takes the following arguments:
- -p partition partition
name
- test_pmg_agent
- It checks if the Process Manager server is running on the
passed host.
- It takes the following arguments:
- -H hostname full host name
- pmg_sleep_process
- Simple program that sleeps for the time specified as
parameter and then just exit with the specified exit status value.
- It takes the following arguments:
- -w integer time in seconds to sleep before
the process exit, default 3 seconds
- -x integer exit value the process
returns when it finishes
- -W integer time in seconds to sleep before the
synchronization is made with the Process Manager, default no
synchronization
- SyncTest
- Program to test the synchronization mechanism with the
Process Manager.
- It takes the following arguments:
- -s name Name of test script
- -b time Time in seconds before sync is
produced
- -a time Time in seconds to run after sync
is produced
Known Issues
- Problems are known to occur when the same user owns two
Process Manager server instances on the same host (of course in two
different IPC domains).
- Let's suppose to execute the following actions:
- The partition partition_name
(using a certain host set host_set)
is started;
- partition_name is
stopped;
- The partition_name
configuration is changed in such a way that now it uses a different
host set host_set_1;
- partition_name is
started again.
In such a situation the
Process Manager servers running on
host_set
will publish themselves again in the
partition_name
IS server even if no processes are running on those hosts (within the
partition_name
partition). As a result they will be shown in the IGUI PMG panel too.
This could lead the user to some confusion about partition
configuration.