Scroll to navigation

LOCKFILE(1) General Commands Manual LOCKFILE(1)

NUME

lockfile - creator de fișiere- semafoare condiționale

REZUMAT

lockfile -timp-dormire | -r reîncercări | -l timp-de-blocare | -s timp-suspendare | -! | -ml | -mu | nume-fișier ...

DESCRIERE

lockfile poate fi utilizat pentru a crea unul sau mai multe fișiere semafor. În cazul în care «lockfile» nu poate crea toate fișierele specificate (în ordinea specificată), așteaptă timp-dormire (valoarea implicită este 8) secunde și încearcă din nou ultimul fișier care nu a reușit. Puteți specifica numărul de reîncercări care trebuie efectuate până când este returnat eșecul. Dacă numărul de reîncercări este -1 (implicit, adică -r-1) «lockfile» va încerca din nou la nesfârșit.

Dacă numărul de reîncercări expiră înainte ca toate fișierele să fi fost create, «lockfile» returnează eșecul și elimină toate fișierele create până în acel moment.

Utilizarea fișierului de blocare ca o condiție a unei bucle într-un script shell poate fi realizată cu ușurință prin utilizarea fanionului -! pentru a inversa starea de ieșire. Pentru a preveni buclele infinite, eșecurile din orice alt motiv decât existența deja a fișierului de blocare nu sunt inversate în succes, ci sunt returnate în continuare ca eșecuri.

Toate opțiunile pot fi specificate oriunde în linia de comandă și vor fi procesate atunci când sunt întâlnite. Linia de comandă este pur și simplu analizată de la stânga la dreapta.

Toate fișierele create de «lockfile» vor fi numai pentru citire și, prin urmare, vor trebui să fie eliminate cu rm -f.

Dacă specificați un timp-de-blocare, atunci un fișier de blocare va fi eliminat forțat după ce au trecut secundele de „timp-de-blocare” de când fișierul de blocare a fost modificat/creat ultima dată (cel mai probabil de către un alt program care a murit în mod neașteptat cu mult timp în urmă și, prin urmare, nu a putut curăța niciun fișier de blocare rămas). «lockfile» este imun la distorsiunea ceasului. După ce un fișier de blocare a fost eliminat cu forța, se ia în considerare o suspendare de timp-suspendare secunde (valoarea implicită este 16), pentru a preveni eliminarea imediată și neintenționată a oricărui fișier de blocare nou creat de către un alt program (comparați TIMP_SUSPENDARE în procmail(1)).

Blocări pentru căsuțele poștale

În cazul în care permisiunile din directorul de distribuție a corespondenței de sistem „spool” permit acest lucru sau dacă «lockfile» are un setgid corespunzător, acesta va putea bloca și debloca căsuța poștală de sistem utilizând opțiunile -ml și, respectiv, -mu.

EXEMPLE

Să presupunem că doriți să vă asigurați că accesul la fișierul „important” este serializat, adică nu mai mult de un program sau script shell ar trebui să aibă acces la el. Pentru simplificare, să presupunem că este vorba de un script shell. În acest caz, ați putea rezolva problema în felul următor:

...  lockfile important.lock ...
accesați_„important”_după_bunul_plac ...  rm -f important.lock
...

Acum, dacă toate scripturile care accesează „important” urmează această linie directoare, veți fi siguri că cel mult un script va fi executat între comenzile «lockfile» și «rm».

MEDIU

utilizat ca indicație pentru a determina numele de utilizator al apelantului

FIȘIERE

/etc/passwd
pentru a verifica și/sau corecta numele de utilizator al apelantului (și pentru a afla directorul HOME al acestuia, dacă este necesar)
/var/mail/$LOGNAME.lock
fișier de blocare pentru căsuța poștală a sistemului, variabilele de mediu prezente aici nu vor fi preluate din mediu, ci vor fi determinate prin căutarea în „/etc/passwd”

CONSULTAȚI ȘI

rm(1), mail(1), sendmail(8), procmail(1)

DIAGNOSTICARE

Utilizați nume de fișiere mai scurte.
Nu există permisiune de scriere în directorul în care se află fișierul de blocare „x” sau mai multe «lockfile» încearcă să forțeze o blocare exact în același timp.
Fișierul de blocare „x” va fi eliminat cu forța din cauza depășirii unui timp-de-blocare (comparați TIMP_DE_BLOCARE în procmail(1)).
Sistemul nu mai are spațiu de interschimb „swap”.
«lockfile» va șterge tot ce a creat până acum și se va încheia.
A fost atinsă limita de reîncercări.
„x” nu pare să fie un nume de fișier valid.
Încearcă o rugăciune, ...
Lipsesc subdirectoare sau nu sunt suficiente privilegii.

ERORI

În mod sigur, mai puțin de una.

AVERTISMENTE

Comportamentul fanionului -!, deși este util, nu este neapărat intuitiv sau coerent. Atunci când testează valoarea de returnare a «lockfile», autorii de scripturi shell trebuie să se gândească bine dacă doresc să folosească fanionul -!, să inverseze pur și simplu testul sau să facă un comutator pe codul de ieșire exact. În general, indicatorul -! ar trebui să fie utilizat numai atunci când «lockfile» este condiționalul unei bucle.

DIVERSE

«lockfile» este rezistent la NFS și curat pe opt biți.

NOTE

Apelarea «lockfile» cu opțiunile „-h” sau „-?” va face ca acesta să afișeze o pagină de ajutor în linia de comandă. Apelul cu opțiunea „-v” va determina afișarea informațiilor despre versiunea sa.

Mai multe fanioane -! vor schimba starea de returnare.

Deoarece opțiunile pot apărea oriunde în linia de comandă, orice nume de fișier care începe cu „-” trebuie să fie precedat de „./”.

Numărul de reîncercări nu va fi reinițiat la crearea unui fișier următor (adică sunt pur și simplu utilizate). Cu toate acestea, el poate fi reinițiat prin specificarea -rnoi-reîncercări după fiecare fișier din linia de comandă.

Deși fișierele cu orice nume pot fi utilizate ca fișiere de blocare, este o practică obișnuită să se utilizeze extensia „.lock” pentru a bloca dosarele de corespondență (aceasta este adăugată la numele dosarului de corespondență). În cazul în care nu se dorește să se facă griji cu privire la nume de fișiere prea lungi și nu trebuie să se respecte nici o altă convenție privind numele de blocare, atunci o modalitate excelentă de a genera un nume de fișier de blocare corespunzător unui fișier deja existent este de a lua prefixul „lock.” și de a adăuga numărul nodului-i al fișierului care urmează să fie blocat.

SOURCE

Acest program face parte din pachetul procmail mail-processing-package (v3.24) disponibil la http://www.procmail.org/ sau ftp.procmail.org în pub/procmail/.

MAILINGLIST

Există o listă de corespondență pentru întrebări legate de orice program din pachetul procmail:

<procmail-users@procmail.org>

pentru a trimite întrebări/răspunsuri.

<procmail-users-request@procmail.org>
pentru cererile de abonare.


Dacă doriți să fiți informat cu privire la noile versiuni și corecțiile oficiale, trimiteți o cerere de abonament la adresa

procmail-announce-request@procmail.org

(aceasta este o listă numai-pentru-citire).

AUTORI

Stephen R. van den Berg

<srb@cuci.nl>

TRADUCERE

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

BuGless