[20191112]flock控制命令執行順序.txt
[20191112]flock控制命令執行順序.txt
# man flock
FLOCK(1) H. Peter Anvin FLOCK(1)
NAME
flock - Manage locks from shell scripts
SYNOPSIS
flock [-sxon] [-w timeout] lockfile [-c] command...
flock [-sxun] [-w timeout] fd
DESCRIPTION
This utility manages flock(2) locks from within shell scripts or the command line.
The first form wraps the lock around the executing a command, in a manner similar to su(1) or newgrp(1). It
locks a specified file, which is created (assuming appropriate permissions), if it does not already exist.
The second form is conveninent inside shell scripts, and is usually used the following manner:
(
flock -s 200
# ... commands executed under lock ...
) 200>/var/lock/mylockfile
The mode used to open the file doesn't matter to flock; using > or >> allows the lockfile to be created if it
does not already exist, however, write permission is required; using < requires that the file already exists but
only read permission is required.
By default, if the lock cannot be immediately acquired, flock waits until the lock is available.
OPTIONS
-s, --shared
Obtain a shared lock, sometimes called a read lock.
-x, -e, --exclusive
Obtain an exclusive lock, sometimes called a write lock. This is the default.
-u, --unlock
Drop a lock. This is usually not required, since a lock is automatically dropped when the file is closed.
However, it may be required in special cases, for example if the enclosed command group may have forked a
background pro-
cess which should not be holding the lock.
-n, --nb, --nonblock
Fail (with an exit code of 1) rather than wait if the lock cannot be immediately acquired.
-w, --wait, --timeout seconds
Fail (with an exit code of 1) if the lock cannot be acquired within seconds seconds. Decimal fractional values are allowed.
-o, --close
Close the file descriptor on which the lock is held before executing command. This is useful if command
spawns a child process which should not be hold ing the lock.
-c, --command command
Pass a single command to the shell with -c.
-h, --help
Print a help message.
AUTHOR
Written by H. Peter Anvin <hpa@zytor.com>.
COPYRIGHT
Copyright ?2003-2006 H. Peter Anvin.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.
SEE ALSO
flock(2)
--//命令有點複雜,舉一個簡單例子:
# flock -x /tmp/x.out -c 'sleep 20' &
# flock -x /tmp/x.out -c 'sleep 10' &
# flock -x /tmp/x.out -c 'sleep 20' &
[1] 31245
# flock -x /tmp/x.out -c 'sleep 10' &
[2] 31247
# ps -ef | grep slee[p]
root 31245 30952 0 09:54 pts/13 00:00:00 flock -x /tmp/x.out -c sleep 20
root 31246 31245 0 09:54 pts/13 00:00:00 sleep 20
root 31247 30952 0 09:55 pts/13 00:00:00 flock -x /tmp/x.out -c sleep 10
# ps -ef | grep slee[p]
root 31247 30952 0 09:55 pts/13 00:00:00 flock -x /tmp/x.out -c sleep 10
root 31252 31247 0 09:55 pts/13 00:00:00 sleep 10
[1]- Done flock -x /tmp/x.out -c 'sleep 20'
# ps -ef | grep slee[p]
[2]+ Done flock -x /tmp/x.out -c 'sleep 10'
--//-x exclusive lock
--//可以發現先執行sleep 20程式,然後完成後執行sleep 10程式.而不是同時執行.
--//不知道以後是否會用上,先做一個記錄.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2663625/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20191215]seq控制執行順序.txt
- Sql執行順序SQL
- pipeline的執行順序
- JavaScript執行順序分析JavaScript
- mySQL 執行語句執行順序MySql
- pytest 框架多個 test.py 檔案怎麼控制其執行順序,除了預設的檔名 ascii 碼順序執行還有什麼外掛或者方法可以控制其執行順序麼框架ASCII
- Select語句執行順序
- Spring Aop的執行順序Spring
- sql mysql 執行順序 (4)MySql
- SQL語句執行順序SQL
- js執行順序Event LoopJSOOP
- Pytest 順序執行,依賴執行,引數化執行
- mysql 語句的執行順序MySql
- 關於 Promise 的執行順序Promise
- sql select語法執行順序SQL
- SQL 語句的執行順序SQL
- async await、Promise、setTimeout執行順序AIPromise
- js解惑-函式執行順序JS函式
- 聊聊如何讓springboot攔截器的執行順序按我們想要的順序執行Spring Boot
- Java中如何保證執行緒順序執行Java執行緒
- join、volatile、newSingleThreadLatch 實現執行緒順序執行thread執行緒
- kafka多執行緒順序消費Kafka執行緒
- 路由的中介軟體執行順序路由
- unittest--TestCase 按宣告順序執行
- Go包中程式碼執行順序Go
- 利用訊號量實現執行緒順序執行執行緒
- 【高併發】深入理解執行緒的執行順序執行緒
- Python執行緒專題10:queue、多執行緒按順序執行Python執行緒
- java類內部程式碼執行順序Java
- Jmeter的元件作用域和執行順序JMeter元件
- C#類中方法的執行順序C#
- Gradle系列(二) Gradle執行順序和taskGradle
- pytest(4)-測試用例執行順序
- 令人費解的 async/await 執行順序AI
- SQL語句各子句的執行順序SQL
- java繼承關係下執行順序Java繼承
- Java之執行緒的優先順序Java執行緒
- C#中Page執行順序:OnPreInit()、OnInit()……C#