diff options
| -rw-r--r-- | readme.rst | 3 | ||||
| -rwxr-xr-x | test.sh | 22 | 
2 files changed, 24 insertions, 1 deletions
@@ -72,7 +72,8 @@ able to be interruptible without interrupting the underlying job.  .. code:: shell      #!/bin/sh -    flock -x /var/lock/transcode_my_file.sh.lock ffmpeg -i "$1" -arg -arg & +    [ "${FLOCKER}" != "$0" ] && exec env FLOCKER="$0" flock -e "$0" "$@" +    ffmpeg -i "$1" -arg -arg &  The first `ffmpeg` command will go to background then, the second will wait  until the first `ffmpeg` finishes. If the `teaqueue` command is interrupted, @@ -0,0 +1,22 @@ +#!/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  | 
