table of contents
LOCKFILE(1) | General Commands Manual | LOCKFILE(1) |
NUME¶
lockfile - creator de fișiere- semafoare condiționale
SINOPSIS¶
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¶
- LOGNAME
- 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/spool/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¶
DIAGNOSTICARE¶
- Numele fișierului este prea lung, ...
- Utilizați nume de fișiere mai scurte.
- Deblocare forțată refuzată la „x”
- 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.
- Blocare forțată pe „x”
- 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)).
- Memorie epuizată, ...
- Sistemul nu mai are spațiu de interschimb „swap”.
- S-a primit semnalul, ...
- «lockfile» va șterge tot ce a creat
până acum și se va încheia.
- Scuze, ...
- A fost atinsă limita de reîncercări.
- Trunchierea lui „x” și reîncercarea blocării
- „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.
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
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 |