flock
나는 그것을 알고 cron 작업에서 실행할 때 사용됩니다 solo
(차이는 확실하지 않습니다). 그러나 스크립트 자체 내에서 병렬 실행을 방지할 수 있습니까?
답변1
Ipor Sircer가 말했듯 lckdo
이 어쩌면 그것이 올바른 선택일 수도 있습니다.
bash
스크립트 에서는 다음과 같이 보일 수 있습니다. $BASHPID는 실행 중인 스크립트의 PID입니다. 이를 파일에 저장하고 존재하는지 확인할 수 있습니다(또는 PID가 포함된 파일이 여전히 활성 상태인지 확인하는 것이 더 좋습니다).
#!/usr/bin/env bash
PIDFILE="/foo/bar/script.pid"
# script running?
[[ -s $PIDFILE ]] && exit
# no, create pidfile
echo $BASHPID > $PIDFILE
# .. do some stuff
# delete pidfile
rm $PIDFILE