Почему вывод команды «*» загружается?

If each cgroup has a single process running, how are these processes scheduled given the CFS period (assuming both processes constantly require CPU time)?

То, что вы настроили, означает 50% ядра ЦП/HT, но не 50% всей системы.

How would CFS schedule the processes in this case when the quota is oversubscribed?

Как и в предыдущем случае, переподписка отсутствует, это просто означает, что два процесса могут использовать 0,5 процессорного времени и 0,9 процессорного времени каждый. Чтобы понять, рассмотрим случай, если в вашей системе было 20 процессорных ядер/HT.

-1
16.04.2021, 15:52
1 ответ

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

Оболочка расширит символ подстановки имени файла *на все видимые имена в текущем каталоге. Имена будут отсортированы в лексикографическом порядке.

Вы находитесь в каталоге, в котором имя bootявляется именем, которое сортируется первым. Это означает, что ввод только*в этом конкретном каталоге будет таким же, как попытка запустить команду с именем bootсо всеми другими именами из этого каталога в качестве аргументов командной строки.

В вашей системе нет команды с именем bootв вашем текущем $PATH, поэтому оболочка жалуется, что не может ее найти.

Вот что бывает.

Пример на моей системе (с оболочкой zsh, а не bash, но в этом отношении она работает одинаково):

% cd /
% ls
altroot    bsd        bsd.sp     home       sbin       usr
bin        bsd.booted dev        mnt        sys        var
boot       bsd.rd     etc        root       tmp
% *
zsh: command not found: altroot

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

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


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

$ ls -l
total 0
-rw-r--r--  1 myself  wheel  0 Apr 16 18:49 -i
-rw-r--r--  1 myself  wheel  0 Apr 16 18:49 important-file-1.txt
-rw-r--r--  1 myself  wheel  0 Apr 16 18:49 important-file-2.txt
-rw-r--r--  1 myself  wheel  0 Apr 16 18:49 important-file-3.txt

Обратите внимание, как -iсортируется первым? Это означает, что когда они делаютrm -rf *(по ошибке )в этом каталоге, происходит это:

$ rm -rf *
remove important-file-1.txt? n
remove important-file-2.txt? n
remove important-file-3.txt? n

То есть имя -iвставляется как опция к rm -rf, что заставляет rmзапрашивать подтверждение перед удалением каких-либо файлов. Затем они получают шанс прервать операцию.

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

4
28.04.2021, 22:52

Теги

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