/lckdo.docbook (effe84d29436f6749b7b0614b6a59c700f287ccf) (3532 bytes) (mode 100644) (type blob)
<?xml version="1.0" encoding="utf-8"?>
<!--
Written by Michael Tokarev <mjt@tls.msk.ru>
Public domain.
-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"file:///usr/share/xml/docbook/schema/dtd/4.4/docbookx.dtd"
[]>
<refentry>
<refentryinfo>
<address>
<email>mjt@tls.msk.ru</email>
</address>
<author>
<firstname>Michael</firstname>
<surname>Tokarev</surname>
</author>
<date>2007-08-15</date>
</refentryinfo>
<refmeta>
<refentrytitle>lckdo</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>lckdo</refname>
<refpurpose>run a program with a lock held</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>lckdo</command>
<arg>options</arg>
<arg choice="req">lockfile</arg>
<arg choice="req">program</arg>
<arg>arguments</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>DESCRIPTION</title>
<para><command>lckdo</command> runs a program with a lock
held, in order to prevent multiple processes from running in
parallel. Use just like <command>nice</command> or
<command>nohup</command>.</para>
<para>Now that util-linux contains a similar command
named <command>flock</command>, lckdo is deprecated,
and will be removed from some future version of moreutils.
</para>
</refsect1>
<refsect1>
<title>OPTIONS</title>
<variablelist>
<varlistentry>
<term><option>-w</option></term>
<listitem>
<para>If the lock is already held by another process,
wait for it to complete instead of failing
immediately.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-W {sec}</option></term>
<listitem>
<para>The same as -w but wait not more than sec
seconds.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-e</option></term>
<listitem>
<para>Execute the program directly without forking and
waiting (keeps an extra file descriptor open).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-E {nnn}</option></term>
<listitem>
<para>Set the file descriptor number to keep open when
exec()ing (implies -e).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-n</option></term>
<listitem>
<para>Do not create the lock file if it does not
exist.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-q</option></term>
<listitem>
<para>Produce no output if lock is already held.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-s</option></term>
<listitem>
<para>Lock in shared (read) mode.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-x</option></term>
<listitem>
<para>Lock in exclusive (write) mode (default).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-t</option></term>
<listitem>
<para>Test for lock existence.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>EXIT STATUS</title>
<para>If the lock was successfully acquired, the return value is that
of the program invoked by <command>lckdo</command>. If the lock
couldn't be acquired, EX_TEMPFAIL is returned. If there was a problem
opening/creating or locking the lock file, EX_CANTCREAT or EX_OSERR
will be returned.</para>
</refsect1>
<refsect1>
<title>AUTHOR</title>
<para>
Michael Tokarev
</para>
</refsect1>
</refentry>
Mode |
Type |
Size |
Ref |
File |
100644 |
blob |
44 |
5d425843f23db3bb6970a55c953f345e3a8c8fe1 |
.gitattributes |
100644 |
blob |
17989 |
b7b5f53df1412df1e117607f18385b39004cdaa2 |
COPYING |
100644 |
blob |
1038 |
377121d56b79b9fbc42cabe86f4c3bae0d44bd2f |
Makefile |
100644 |
blob |
1106 |
548acf2240b3ea1ad6276e39ec195133a8b6d4c6 |
README |
100755 |
blob |
806 |
83a4eed00f82e3bcc81856149b47cffc4091f9aa |
check-isutf8 |
100755 |
blob |
2607 |
a695935b24a5f2789c71a8affc4486859a41f737 |
combine |
040000 |
tree |
- |
eebe48e402250fe244bf2856a5f7434178808e51 |
debian |
100644 |
blob |
13073 |
2de98a0b19372bff63be861b5adc755fa52fc74d |
ifdata.c |
100644 |
blob |
7234 |
963943ee1bd1ae2ae3b087663a5e1d6cd961f246 |
ifdata.docbook |
100644 |
blob |
3006 |
d8ecea9b8bc416154533572e1ce85a0385b7af10 |
ifne.c |
100644 |
blob |
2360 |
41fa9abe7a23b63f5afd110dcd0b3f78b0e4c531 |
ifne.docbook |
100644 |
blob |
7581 |
c5f5eeb667c425c3ef02516712c08acb72f3f557 |
isutf8.c |
100644 |
blob |
2986 |
58355a2cd465fe70dd7722c28c1dc62ed85ef7e8 |
isutf8.docbook |
100644 |
blob |
5471 |
4925409bd548b058f07defe913724868801040df |
lckdo.c |
100644 |
blob |
3532 |
effe84d29436f6749b7b0614b6a59c700f287ccf |
lckdo.docbook |
100644 |
blob |
5783 |
d183d04a5f249072da9be3e1d30d4e205e1be021 |
mispipe.c |
100644 |
blob |
2464 |
bd8faa8601fe24b72f93985249be2163513f44f7 |
mispipe.docbook |
100644 |
blob |
5318 |
d283b96101fbc89ef214436bab316cf1092536f9 |
parallel.c |
100644 |
blob |
3598 |
d3ffcce639cc0880bb1aebb973354d7a6b54dbcd |
parallel.docbook |
100644 |
blob |
1040 |
6ba38f78da10b61c8670b1c450fa769248ef84c4 |
pee.c |
100644 |
blob |
2225 |
fcb159aa0f9e44536c321b92e0ad589be04fd856 |
pee.docbook |
100644 |
blob |
7301 |
a53a2cf1906998c91533f5f5435ceeeeb1a7cd59 |
physmem.c |
100644 |
blob |
8570 |
242298deb641650bd25e8b68b52ca72f82becfa4 |
sponge.c |
100644 |
blob |
1859 |
24c432ac20eb502e58cf609037a3cfa4d1dc7a5f |
sponge.docbook |
100755 |
blob |
2572 |
042cc18b8a0b4649874b229c039b7b9d79806bfc |
ts |
100755 |
blob |
4495 |
a77739f27d8cab6843471de92857fe5064f9ace4 |
vidir |
100755 |
blob |
1402 |
fd61049c5ce903a1de06870cadf18a7c2b1e4137 |
vipe |
100755 |
blob |
2518 |
98d1445a5f8106f04be690f85d802a7f6decfd13 |
zrun |
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"
Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/nicolas/debian.moreutils
Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/nicolas/debian.moreutils
Clone this repository using git:
git clone git://git.rocketgit.com/user/nicolas/debian.moreutils
You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a
merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main