3.12. Software Collection Lock File Support
By default, programs packaged into a Software Collection create lock files in the
/opt/provider/%{scl}/root/var/lock/
directory.
To make lock files more accessible and easier to manage, you are advised to use the
nfsmountable
macro that redefines the _localstatedir
macro. This results in lock files being created underneath the /var/opt/provider/%{scl}/lock/
directory, outside of the /opt/provider/%{scl}
file system hierarchy.
If applications or services packaged into your Software Collection write the lock underneath the
/var/opt/provider/%{scl}/lock/
directory, then those applications and services can run concurrently with the system versions (when the resources of your Software Collection's applications and services will not conflict with the system versions' resources).
For example, a lock file
mylockfile.lock
is normally created in the /var/lock/
directory in the base system installation. If the lock file is a part of a software_collection Software Collection and the nfsmountable
macro is defined, the path to the lock file in software_collection is as follows:
/var/opt/provider/software_collection/lock/mylockfile.lock
For more information on using the
nfsmountable
macro, see Section 3.1, “Using Software Collections over NFS”.
Preventing Programs from Running Concurrently
If you want to prevent your Software Collection's applications or services from running while the system version of the respective application or service is running, make sure that your applications or services, which require a lock, write the lock to the system directory
/var/lock/
. In this way, your applications or services' lock file will not be overwritten. The lock file will not be renamed and the name stays the same as the system version.
3.12.1. Software Collection SysV init Lock File Support
When a service is started by an init script, a lock file is touched in the
/var/lock/subsys/
directory with the same name as the init script. As discussed in Section 3.4, “Managing Services in Software Collections”, service names include a Software Collection prefix. Use the same naming convention for files underneath /var/lock/subsys/
to ensure that the lock file names do not conflict with the base system installation.