#!/bin/bash [ "${FLOCKER}" != "$0" ] && exec env FLOCKER="$0" flock -oe "$0" "$0" "$@" LOCKDIR=/var/run/user/$UID/transcode_my_files mkdir -p "${LOCKDIR}" filename="${1}" maxjobs=3 sleeptime=2 while true; do for i in $(seq $maxjobs); do lockfile="${LOCKDIR}/job_${i}" if ! test -e "${lockfile}"; then touch "${lockfile}" || exit 1 sh -c "sleep 10; echo done:${filename}; rm '$lockfile'" & #flock -u "$0" exit 0 fi done sleep $sleeptime done