GB | BIG5
|
| 首頁 > 系統管理 > 其它 > 正文 |
 |
| 中文man手冊:lockfile - 條件標志文件創建命令 |
| 本文出自:http://www.cmpp.net 作者: (2001-09-20 10:00:00) |
LOCKFILE
Section: User Commands (1) Updated: 2001/06/15
NAME(名稱)
lockfile - 條件標志文件創建命令
SYNOPSIS(總覽)
lockfile
-sleeptime
|
-r retries
|
-l locktimeout
|
-s suspend
|
-!
|
-ml
|
-mu
|
filename
...
DESCRIPTION(描述)
lockfile
可以用來創建一個或多個
信號量(semaphore)
文件.
如果lockfile不能創建所有指定的文件(按照指定的順序),那它會等待一段
休眠期(sleeptime)
(默認為8秒)並從不成功的最一個文件開始重試.你可以指定失敗返回之前
重試(retries)
的次數.
如果
retries
的次數設為-1(默認地,也即
-r-1)
lockfile會永遠重試下去.
如果在所有文件創建之前
retries
的次數已經滿了,lockfile會返回失敗的信息並刪除所有已經創建的文件.
在shell腳本中使用lockfile作為循環的條件可以很容易地通過使用
-!
標識反向退出的狀態來實現.為了防止無限循環,除了lockfile已經存在以外的任何原因的失敗都不會反向為成功狀態,而是仍然以失敗狀態返回.
所有標識可以在命令行中的任何地方指定,碰到它們就進行處理.命令行簡單地由左至右進行解析.
所有通過lockfile創建的文件都是只讀的,因此必須使用
rm
-f
來刪除.
如果你指定了一個
locktimeout
那lockfile會在lockfile最一次修改/創建之locktimeout秒過強制性地刪除(很可能是一些其它程序意外死掉很長一段時間造成不能清除殘余的lockfiles).Lockfile不受時鐘偏差的影響.在lockfile強制被清除之,延遲的
suspend
秒(默認為16)開始計數,這是為了防止無意的直接刪除了任何由另一程序新創建的lockfile(與
procmail(1))
中的
SUSPEND
比較).
Mailbox locks(郵箱鎖定)
如果系統郵件spool目錄有權限允許它,或者如果lockfile正好被setgid了,那它可以通過
使用相應的選項
-ml
和
-mu
lock和unlock你的系統郵箱.
EXAMPLES(示例)
假設你想確定訪問文件"important"是串行的,也即,沒有其它程序或shell腳本允許訪問它.為了簡省起見,讓我們假定它是一個shell腳本.在這個例子中,你應該像這樣解決:
-
...
lockfile important.lock
...
access_"important"_to_your_hearts_content
...
rm -f important.lock
...
現在如果所有訪問"important"的腳本按照這條規則,你就可以確保在`lockfile'和`rm'命令之間至多只有一個腳本在執行.
ENVIRONMENT(環境變量)
- LOGNAME
-
用作隱含變量以確定調用者的登錄名
FILES(相關文件)
- /etc/passwd
-
為了驗証和/或糾正調用者的登錄名(如果需要的話,同時也是為了找出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"所存放的目錄的寫的權限,或者超過一個lockfile幾乎同時正在試圖強制lock.
- Forcing lock on "x"
-
lockfile "x"因為超時的緣故將要強制刪除
(與
procmail(1))
中的
LOCKTIMEOUT
作比較).
- Out of memory,...
-
系統交換空間溢出.
- Signal received,...
-
Lockfile將刪除到此為止創建的所有文件並終止.
- Sorry,...
-
retries
限制已經到達.
- Truncating "x" and retrying lock
-
"x"看上去不是有效的文件名.
- Try praying,...
-
缺失子目錄或者權限不夠.
BUGS
確實少一個.
WARNINGS(警告)
-!
標識的操作行為,盡管有用,但是並不很直接或一致.當測試lockfile的返回值時,shell腳本編寫者應該仔細考慮是使用
-!
標識簡單地作反向測試,還是對原來的退出代碼執行一次轉換.
通常,
-!
標識應該只用在lockfile是循環的條件之時.
MISCELLANEOUS(雜項)
Lockfile不兼容NFS,而且八位還原.
NOTES(備注)
使用-h或-?選項調用lockfile會使得它顯示命令行方式的幫助頁.使用-v選項調用會使得它顯示版本信息.
多個
-!
標識會切換返回狀態.
因為標識可以出現在命令行的任何位置,所以任何一個以'-'開頭的文件名必須加'./"在前面.
當任何接在面的文件正在創建(也即,它們正在使用)時,
retries
的次數不能重新設置.不過,它可以通過在命令行上指定
-rnewretries
每個文件之來重新設置.
盡管任何名字的文件都可用作lockfiles,通常習慣還是使用擴展名為'.lock'的文件來lock郵件文件夾(它添加郵件夾名之).如果不想擔心文件名太長了,也不必遵從任何其它的lockfilename的習慣,那一個最好的方法就是通過添加前綴`lock.'來生成一個與已經存在的文件相應的lockfilename,並且在其添加鎖定文件的i-node數.
SOURCE(源自)
該程序為 http://www.procmail.org/或者
ftp.procmail.org的
pub/procmail/
中
procmail mail-processing-package
(v3.14)的一部分.
MAILINGLIST(郵件列表)
有一個針對procmail包中任何程序相關問題的郵件列表:
-
<procmail-users@procmail.org>
-
用來提交問題/答案.
<procmail-users-request@procmail.org>
-
用來請求訂閱.
如果你想即時獲得新版本和公開補丁的通告,請發訂閱請求到
-
procmail-announce-request@procmail.org
(這是一個只讀列表).
AUTHOR
Stephen R. van den Berg
-
<srb@cuci.nl>
[中文版維護人]
riser E-mail:boomer@ccidnet.com
[中文版最新更新] 2000/12/5
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
|
|
|
|
 |
★ 樊強制作 歡迎分享 ★ |