Quality First Free Software

Follow me on GitHub

FLoM - Free Lock Manager

FLoM is a free and open source distributed lock manager that can be used to synchronize shell commands, scripts and custom developed software. When used in a shell environment, FLoM manages process synchronization in the same way that “nice” manages process prioritization. Shell commands, scripts and custom programs can be synchronized inside a single system or in a network of IP connected systems. FLoM supports different types of abstract resources: simple, numeric, set, hierarchical and transactional sequence. libflom, the library shipped with FLoM, allows you to develop your own application using a simple C, C++, Java, Perl, PHP or Python client API. FLoM can use SSL/TLS security for network communication and X.509 certificates for peer to peer mutual authentication.

An overview article was published by DZone and is available in a printer friendly format here.

A step by step tutorial is available in wiki format here: FLoM by examples

Are you asking yourself because I started to develop this software? Are you tired to write cryptic shell scripts to manage locking and synchronization? Read the tale

As you can imagine this is not the first time some one is trying to give you a tool like this. This page collects some Similar Tools I discovered googling around.


You can download FLoM from GitHub and from SourceForge

If you was not annoyed by the previous stuff, you might be interested in some more detailed documentation…

FLoM runs around the Resource concept: take a look to it.

FLoM is distributed as C source code you may download, compile and install using standard git and GNU build chain (automake, autoconf, gcc): installation.

FLoM wants to be just work software and configuration should be reduced to the minimum: this page gives you some hint to explore configuration matter.

FLoM deep diving contains specific detailed topics you could interested in after you tried some examples (use cases).


The main way to get FLoM is building it from source code, but Andreas Stieger provided a package for openSUSE.

FLoM API (Application Programming Interface)

FLoM provides an API based on libflom that’s compiled and installed using libtool; using libflom you can use a FLoM daemon to synchronize your own applications and your own shell scripts/commands using the same tool.

The FLoM API allows you to write your own program using these programming languages:

  • C: primary interface
  • C++: header only wrapper based on C primary interface
  • Java: wrapper based on C primary interface (JNI implementation)
  • Perl: wrapper based on C primary interface and generated by SWIG
  • PHP: wrapper based on C primary interface and generated by SWIG
  • Python: wrapper based on C primary interface and generated by SWIG

FLoM Security

SSL/TLS Security allows to protect network communications and enable peer to peer mutual authentication based on X.509 certificates.

Your feedback is very valuable

Don’t esitate to write your suggestions using the project forum: without your feedback this software can’t become terribly useful.

If you think FLoM provides value to you, please donate to the project using this DPBAX1a98sCeLcSEjk4KqDTjdB8fQ9WQpC Dogecoin address: useless to say, even free software development and maintenance generates costs. Thanks for your support!

And last but not least…

In the event of bug, GitHub Issues is your friend!