다음 잠금 메커니즘이 동시에 실행에서 cron
일을 방지하기 위해 사용됩니다,bash는 무리 : 출구 취득 할 수없는 경우 잠금
#!/bin/bash
echo "Before critical section"
(
flock -e 200
echo "In critical section"
sleep 5
) 200>/tmp/blah.lockfile
echo "After critical section"
두 개의 인스턴스를 실행, 나중에 대기를 처음 완료 될 때까지 다음 실행됩니다. 이로 인해 실행 대기중인 스크립트의 백 로그가 발생할 수 있습니다.
flock
이 잠금을 획득 할 수 없으면이 스크립트를 어떻게 변경하여 스크립트를 종료합니까? 나는 성공하지 못한 채 -n
을 시도했다.
이것이 실패 할 수있는 경우를 문서화하는 것이 좋습니다. 나는'$ 0'이 공백을 포함한다면 실패 할 것으로 의심하고'$ 0'이 실행중인 스크립트의 경로를 포함하지 않으면 실패 할 것이다. (예를 들어 스크립트는 다른 곳에 있지만'PATH'에있다.) – joeytwiddle
$ PATH에 $ 0이 있으면 경로가 있어야합니다. 작동하지 않는 경우는 대시 (dash)입니다. – steveayre