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