Guest

bash flock protected logging v2

Jan 7th, 2026
14
0
Never
Not a member of gistpad yet? Sign Up, it unlocks many cool features!
Bash 3.32 KB | Software | 0 0
  1. mylog_flush() {
  2.  
  3. local log_file="$1"
  4. local lock_file="$2"
  5.  
  6. [ -z "$counter" ] && return
  7.  
  8. # $logfile bei Bedarf oeffnen
  9. [ -n "$LOG_FD" ] || exec {LOG_FD}<>$lock_file
  10.  
  11. dbg "logbuffer flush, logbuffer_count: ${#logbuffer} counter: ${counter}"
  12. local i
  13. if flock --exclusive --timeout 10 $LOG_FD ;then
  14. for((i=0;i<$counter;i++));do
  15. dbg "writing line >${logbuffer[$i]}< ..."
  16. echo "${logbuffer[$i]}" >>$log_file
  17. done
  18. logbuffer=()
  19. counter=0
  20. flock --unlock $LOG_FD
  21. fi
  22. }
RAW Gist Data Copied