Устранение неполадок с максимальным размером FIFOLinux

Ответить
Anonymous
 Устранение неполадок с максимальным размером FIFO

Сообщение Anonymous »

Environment Info
  • OS: CenOS 7.9
  • Bash ver: GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
Background
I am doing S3 objects migration via shell script (curl to local MinIO endpoint).

This script spawns multiple workers (via background process &), uses FIFO as job queue, and flock to control read job from queue, then downloads objects, uploads objects ... etc.

Part of the script looks like this:

# ... # read params, show info ... # setting up locks, fifo ... # define the job() function run by worker. # # ... # the FIFO (job queue) is FD 3 # the FIFO lock is FD 4 function work () { wid=$1 # setup FD and locks # ... while true; do flock 4 # get the fifo lock read -r -su 3 job_id obj read_status=$? flock -u 4 # release the fifo lock if [[ $read_status -eq 0 ]]; then # if read job from queue, run job in a subprocess. fi done # clean up FDs } echo "Spawning workers..." for ((i=1;i&3 } while read -r obj_name ; do append_job $i "${obj_name}" i=$((i+1)) done <

Источник: https://stackoverflow.com/questions/781 ... -fifo-size
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»