rmdir(2)
перестанет работать, если каталог не будет пуст. Если другой процесс создает файлы в то время как rm(1)
удаляет их, это не будет знать для удаления их и следовательно когда это прибудет время для rm(1)
пытаться удалить, чему это верит, должно быть пустым каталогом, это перестанет работать с ошибкой, которую Вы отправили.
Один способ удалить каталог перед лицом параллельных созданий файла в каталоге состоит в том, чтобы переименовать его:
mv a a~
rm -rf a~
Возможно, что это не может работать если процессы, создающие файлы в a/b
не делают так путем (open(2)
по сравнению с. openat(2)
).
Я предполагаю, что процесс (процессы), который создает файлы в a/b
воссоздаст тот каталог, если он не будет существовать или обработает отказ корректно, если он не существует. Так как Вы уже пытаетесь удалить каталог из-под других процессов, который походит на безопасное предположение.
Взгляните на NetworkManager, отлаживающий подсказки для общих деталей о том, как отладить провальные беспроводные соединения в среде GNOME. Если проблема не очевидна для Вас от рассмотрения журналов (например. /var/log/messages
), включайте соответствующую часть их в Вашем вопросе. (Трудно ответить на Ваш вопрос этим общим способом.)