Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


flock(1) locks files

The simplest thing that could possibly work

To exclusively lock /tmp/my.lock while running the utility echo "hello, world!":

flock /tmp/my.lock echo "hello, world!"

You can also use to run a single instance of rsync at a time - note: no need to escape double quotes

flock -n /tmp/my-lock.lock rsync -avr -e "ssh -p 22" "~/my path with spaces/" user@remote-host:/Documents/


Mac OS X Homebrew:

brew tap discoteq/discoteq
brew install flock

From source:

xz -dc flock-${FLOCK_VERSION}.tar.xz | tar -x
cd flock-${FLOCK_VERSION}
make install

Wait, isn't there already a flock(1)?

Yep, it's part of util-linux.

What makes discoteq flock(1) different is:

  • Support for latest stable Linux (Debian & CentOS), Illumos (OmniOS & SmartOS), Darwin & FreeBSD
  • Testing for all major features and edge conditions
  • ISC license
  • Public access to source history and bug tracking

Project Principles

  • Community: If a newbie has a bad time, it's a bug.
  • Software: Make it work, then make it right, then make it fast.
  • Technology: If it doesn't do a thing today, we can make it do it tomorrow.


Got an idea? Something smell wrong? Cause you pain? Or lost seconds of your life you'll never get back?

All contributions are welcome: ideas, patches, documentation, bug reports, complaints, and even something you drew up on a napkin.

Programming is not a required skill. Whatever you've seen about open source and maintainers or community members saying "send patches or die" - you will not see that here.

It is more important to me that you are able to contribute.

Creating a new issue is probably the fastest way to get something fixed, but feel free to contact me via email (, in IRC or however you can.

There's no wrong way to file a bug report, but I'll be able to help fastest if you can describe:

  • what you did
  • what you expected to happen
  • what actually happened

(Some of the above was repurposed with <3 from logstash)