Как регистрировать изменения флагов файлов в файловых системах ext4 и xfs?

Если producer-clientи consumer-serverобщаются не через канал, а через сокет, их не следует запускать в конвейере.

Вместо этого

consumer-server &
sleep 2
producer-client &

wait

Это запустит сервер в качестве фонового задания, подождет две секунды, пока сервер все инициализирует, а затем запустит клиент в качестве фонового задания. Затем сценарий ожидает завершения обоих.

Как вы сами предполагаете, клиент также может просто дождаться появления файла сокета, здесь не используяinotify:

consumer-server &

while [ ! -S /path/to/socket ]; do
    echo Waiting for socket to appear... >&2
    sleep 1
done
producer-client &

wait

Петля while(или эквивалентная вещь)также может быть частью того, что producer-clientделает внутри.


Если сервер и клиент не обмениваются данными по каналу, то ваш конвейер

producer-client | consumer-server

по сути то же самое, что и

producer-client &
consumer-server

Мой предложенный набор команд (выше )изменяет это, чтобы вставить короткую задержку между вызовом двух, а также запускает клиент как фоновую задачу (, что не является строго необходимым ).

0
02.09.2021, 13:46
1 ответ

auditdбыл создан именно для этого. inotify/fsnotifyтребуют тонны кода, чтобы быть полезными, и они обычно не используются для этой цели.

В сети полно руководств, например.

0
02.09.2021, 17:02

Теги

Похожие вопросы