Как безопасно создать файл в bash

Поскольку после понижения версии вашего ядра звук восстановился, это похоже на регресс ядра. Поскольку вы используете ядро ​​​​Ubuntu, лучше всего сообщить о проблеме здесь , но если вы чувствуете себя смелым, вы можете просмотреть все изменения, перечисленные в журнале изменений . чтобы попытаться определить, что может быть причиной проблемы.

Если вы сообщите об этом, вы должны упомянуть тот факт, что понижение версии с -58 до -55 устраняет проблему; вы также должны включить содержимое /proc/asound/cardsв свою рабочую настройку, и используемый вами модуль(lspci -vсообщит вам ). В идеале вы также можете попробовать пакеты, выпущенные между -55 и -58; Я подозреваю, что регрессия находится в -56, поскольку она включает в себя множество изменений.

0
26.09.2021, 08:26
1 ответ

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

Приведенный выше код был изменен следующим образом: :теперь он открывает дескриптор файла для файла /tmp/updating, а затем блокирует дескриптор открытого файла.

exec 4<>/tmp/updating
if ! flock --nonblock --exclusive 4; then
    echo 'Another synchronization is currently running' >&2
    exit 1
fi

В конце скрипта для снятия блокировки был rm /tmp/updating. Мне больше не нужно этого делать, так как стадо будет автоматически выпущено при выходе из скрипта.

На справочной странице для flock (1)есть несколько примеров для использования в различных сценариях, я использовал последний.

0
26.09.2021, 10:16

Теги

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