Provided by: manpages-zh_1.5-1_all bug

NAME()
       lockfile - 條件標誌檔案創建命令

SYNOPSIS()
       lockfile -sleeptime | -r retries |
            -l locktimeout | -s suspend | -!  | -ml | -mu | filename ...

DESCRIPTION(z)
       lockfileHq(semaphore)
       .pGlockfilew(w),|@q
       v(sleeptime)               (預設為8秒)並從不成功的最後一蚗仵袪}始-
       姜.你可以指定失敗返回之前   (retries)   的次數.     如果    retries
       的次數設為-1(預設地,也即 -r-1) lockfile會永遠姜掑U去.

       如果在所有檔案創建之前                                          retries
       的次數已經滿了,lockfile會返回失敗的信息並刪除所有已經創建的檔案.

       在shell稿本中使用lockfile作為循環的條件可以很容易地通過使用          -!
       標識反向退出的狀態來實現.為了防止無循環,除了lockfile已經存在以外的任何-
       鴞]的失敗都不會反向為成功狀態,而是仍然以失敗狀態返回.

       所有標識可以在命令行中的任何地方指定,碰到它-
       抴N進行處理.命令行簡單地由左至右進行解析.

       所有通過lockfile創建的檔案都是只讀的,因此必須使用 rm -f 來刪除.

       如果你指定了一      locktimeout      那麼lockfile會在lockfile最後一次-
       蚹/創建之後locktimeout秒過後強制性地刪除(很可能是一些其它程式意外死掉很長一段時間後造成不能清除殘餘的lockfiles).Lockfile不受時鐘偏差的影響.在lockfile強制被清除之後,延遲的
       suspend                                               秒(預設為16)開始-
       p數,這是為了防止無意的直接刪除了任何由另一程式新創建的lockfile(與
       procmail(1)) 中的 SUSPEND 比較).

   Mailbox locks ()
       如果系統郵件spool目錄有權-
       允許它,或者如果lockfile正好被setgid了,那麼它可以通過 使用相應的選項 -ml-mu lock和unlock你的系統郵箱.

EXAMPLES()
       假設你想確定訪問檔案"important"是串行的,也即,沒有其它程式或shell稿本允許訪問它.為了簡省起見,讓我-
       怜痔w它是一茳hell稿本.在這茖狺l中,你應該像這樣解決:
              ...            lockfile            important.lock            ...
              access_"important"_to_your_hearts_content     ...      rm     -f
              important.lock ...
       現在如果所有訪問"important"的稿本按照這條規則,你就可以確保在`lockfile'和`rm'命令之間至多只有一-
       蚑Z本在執行.

ENVIRONMENT()
       LOGNAME                用作隱含變量以確定調用者的登入名

FILES()
       /etc/passwd            為了驗証和/或糾正調用者的登入名(如果需-
                              n的話,同時也是為了找出HOME目錄)

       /var/spool/mail/$LOGNAME.lock
                              系統郵箱的lockfile,出現在其中的環境變量不由系統的環境變量決定,而是會通過在/etc/passwd中查找確定.

SEE ALSO ()
       rm(1), mail(1), binmail(1), sendmail(8), procmail(1)

DIAGNOSTICS()
       Filename too long,...  使用更短的檔名.

       Forced unlock denied on "x"
                              沒有對lockfile          "x"所存放的目錄的寫的權-
                              ,或者超過一胵ockfile幾乎同時正在試圖強制lock.

       Forcing lock on "x"    lockfile    "x"因為超時的緣故將n強制刪除     (與
                              procmail(1)) 中的 LOCKTIMEOUT 作比較).

       Out of memory,...      系統交換空間溢出.

       Signal received,...    Lockfile將刪除到此為止創建的所有檔案並終止.

       Sorry,...              retries 制已經到達.

       Truncating "x" and retrying lock
                              "x"看上去不是有效的檔名.

       Try praying,...        缺失子目錄或者權不夠.

BUGS

       確實少於一.

WARNINGS()
       -!    標識的操作行為,儘管有用,但是並不很直接或一P.當測試lockfile的返回-
       ,shell稿本編寫者應該仔細考慮是使用 -!   標識簡單地作反向測試,還是對-
       鴩茠滌h出代碼執行一次轉換.                    通常,                  -!
       標識應該只用在lockfile是循環的條件之時.

MISCELLANEOUS()
       Lockfile不相容NFS,而且八位還.

NOTES()
       使用-h或-?選項調用lockfile會使得它顯示命令行方式的幫助-
       .使用-v選項調用會使得它顯示版本信息.

       多 -!  標識會切換返回狀態.

       因為標識可以出現在命令行的任何位置,所以任何一-
       茈H'-'開頭的檔名必須加'./"在前.

       當任何接在後悸瑰仵蚰縝b創建(也即,它怚縝b使用)時,  retries   的次數不能-
       奐s設置.不過,它可以通過在命令行上指定   -rnewretries   於每蚗仵蚺妨嶁-
       奐s設置.

       儘管任何名字的檔案都可用作lockfiles,通常習慣還是使用擴展名為'.lock'的檔案來lock郵件檔案夾(它添加於郵件夾名之後).如果不想擔心檔名太長了,也不必遵從任何其它的lockfilename的習慣,那麼一-
       茬怞n的方法就是通過添加前綴`lock.'來生成一-
       蚖P已經存在的檔案相應的lockfilename,並且在其後添加鎖定檔案的i-node數.
       該程式為  http://www.procmail.org/或者 ftp.procmail.org的 pub/procmail/procmail    mail-processing-package    (v3.14)的一部分.     有一-
       荌w對procmail包中任何程式相關問題的郵件列表:
              <procmail-users@procmail.org>
                     用來提交問題/答案.
              <procmail-users-request@procmail.org>
                     用來請求q閱.

       如果你想即時獲得新版本和公開補丁的通告,請發q閱請求到
              procmail-announce-request@procmail.org
       (這是一茈u讀列表).

AUTHOR

       Stephen R. van den Berg
              <srb@cuci.nl>

[]
       riser <boomer@ccidnet.com>

[]
       2001/08/08

mlinuxan:
       http://cmpp.linuxforum.net

                                    BuGless                        LOCKFILE(1)