GreenX5, а вот как понять, сколько цифр в записи 0.919289999999999 являются значащими, а сколько - ошибкой округлений?
Так-то не очень сложно написать алгоритм, который найдёт на конце все девятки и затем передаст в round(x, текстовая_длина_числа-число_девяток) (не совсем так, так как в текстовую длину входит знак и десятичная точка, но принцип должен быть понятен), но такой алгоритм и 0.9 превратит в 1, а ведь это вряд ли задумывалось.
В итоге всё упирается в то, какая конкретно точность ожидается от чисел. Сколько в них значимых цифр? Вот эту величину и надо передать вторым аргументом round. А 0.919289999999999 с 16 значащими цифрами вполне легально не округляется.
Saboteur, в современных жестких дисках требования к чистоте атмосферы между блинами и головкой ещё 20 лет назад были настолько высокие, что вскрытие диска эквивалентно его смерти.
Значащими являются цифры в мантиссе. При этом возможны всякие казусы, например: 1+(1e-17)=1 - потеря точности, так как в мантиссе не может быть 18 значащих цифр, хотя 1 и 1e-17 не теряют точности по отдельности - там всего одна значащая цифра.
Ну так раз бот не справляется - надо заниматься его оптимизацией. Например, если бот может тупить на обращениях к базе, то можно оптимизировать работу с базой, можно перейти на асинхронные библиотеки (чтобы ввод-вывод не приостанавливал работу бота), можно перейти на webhook и параллелить бота на несколько инстансов...
Можно ещё с помощью acl пошаманить, чтобы права для группы были индивидуальны и не зависели от приписанной файлам основной группы (в некоторых файловых системах acl надо специально включать):
Тут g: - права группы, d:g: - дефолтные права группы для вновь создаваемых файлов в этом каталоге, m:: - маска (по умолчанию часто m::rx поэтому все write перекрываются, легко увидеть по effective:*** в выводе getfacl).
Если каталог непустой, нужно будет всё это делать на подкаталоги тоже. Самое простое с ключём -R, но на файлы вешать SGID не очень хорошо. Альтернатива - что-то типа (-type d - фильтрует каталоги):
find /путь/к/каталогу -type d -exec chgrp ftp {} +
Я бы посоветовал сначала на виртуалке потренироваться или сделать отдельный конфиг vsftpd.conf на другом порту и проверить как оно всё будет, чтобы убедиться, что конечное решение подходит для твоей конкретной задачи.
fokin_nikolay1989, это обычное поведение, vsftpd по умолчанию не разрешает анонимным пользователям запись. Ну а дальше средствами UNIX-прав управлять кто чего может как обычно.
Можно сделать disown, а потом exit, и процесс продолжит работать. Но недолго. Так как у него stdout стал недоступен, он быстро получит ошибку EPIPE при записи в консоль и умрёт.
Так что для корректной работы надо вывод куда-то перенаправить, что не умрёт при завершении сессии. Например, в /dev/null или в файл:
ping foo.bar > ping.log 2>&1 & disown
Что там происходит сейчас можно увидеть по команде tail -f ping.log
WhiteColor75, он хотел сказать, что уровень образования Бауманки не стоит таких денег, это же не Оксфорд какой-нибудь. Ну, это вопрос дискуссионный, но вообще с учётом того, как быстро растут цены в нашей стране воообще на всё что существует в живой и неживой природе, обоснованно оценить ценник на такое долгосрочное вложение денег всегда непросто.