Делаю вот такой простенький чат. Его запускаем через консоль.
#!/bin/bash
echo "Please enter your name:"; read USER
echo "[$(date)] ${USER} joined the chat" >> ./chat.log
echo "[$(date)] Welcome to the chat ${USER}!"
tail -n 0 -f ./chat.log --pid=$$ | grep --line-buffered -v "] ${USER}>" &
while read MSG; do echo "[$(date)] ${USER}> ${MSG}" >> ./chat.log; done
Если этот скрипт запустить более 150 раз я получаю ошибку:
tail: inotify cannot be used, reverting to polling: Too many open files
Помогите пожалуйста как-то оптимизировать его, что бы избавится от этой ошибки.
Я знаю что можно увеличить ulimit, но хочется именно как-то оптимизировать скрипт. Это возможно?