Справочник команд утилиты lsctl
lsctl apply-all
Описание
Передать и применить значения всех лимитов из базы данных утилиты
lsctl
службе управления лимитамиklsd
.Обязательные параметры
Нет.
Дополнительные параметры
--json
— сформировать вывод утилиты о результате исполнения в json-формате;--nowait
— не ждать снятия блокировки файла базы данных, если файл заблокирован, то завершить работуlsctl
немедленно.
Вывод на консоль
Пусто или сообщение об ошибке.
Результат
0
— в случае успеха, не0
— в случае ошибки.Примеры использования команды
$ sudo lsctl apply-all
$ sudo lsctl apply-all --json
Результат работы в случае ошибки
$ sudo lsctl apply-all init error: -111
$ sudo lsctl apply-all --json { "err": "init error: -111", "data": null }
lsctl apply и lsctl apply-user
Описание
Передать и применить значения указанного в параметре
--lsid
LS-контейнера из базы данных утилитыlsctl
службе управления лимитамиklsd
.Обязательные параметры
--lsid
— номер LS-контейнера больше0 `` (для команды ``lsctl apply
);--username
— имя пользователя в системе,uid
которого будет использован в качестве номера LS-контейнера, кромеroot
(для командыlsctl apply-user
).
Дополнительные параметры
--json
— сформировать вывод утилиты о результате исполнения в json-формате;--nowait
— не ждать снятия блокировки файла базы данных, если файл заблокирован, то завершить работуlsctl
немедленно.
Вывод на консоль
Пусто или сообщение об ошибке.
Результат
0
— в случае успеха, не0
— в случае ошибки.Примеры использования команды
$ sudo lsctl apply --lsid=1000
$ sudo lsctl apply --lsid=1000 --json
$ sudo lsctl apply-user --username=test1
Результат работы в случае ошибки
$ sudo lsctl apply --lsid=1000 init error: -111
$ sudo lsctl apply --lsid=1000 --json { "err": "init error: -111", "data": null }
lsctl set и lsctl set-user
Описание
Сохранить в базу данных
lsctl
, а также передать службеklsd
значения лимитов для указанного LS-контейнера.Обязательные параметры
--lsid
— номер LS-контейнера больше или равный0
(для командыlsctl set
)--username
— имя пользователя в системе,uid
которого будет использован в качестве номера LS-контейнера, кромеroot
(для командыlsctl set-user
)
Дополнительные параметры
--cpu
— значение лимита для процессора,100%
— одно ядро,200%
— два ядра и т.д., если заданоunlimited
, то не лимитировать данный параметр;--pmem
— значение лимита памяти для контейнера, в Байтах, Килобайтах или Гигабайтах (1G
,5000K
,200M
,1024000000
), если заданоunlimited
, то не лимитировать данный параметр;--smem
— значение лимита файла подкачки для контейнера, в Байтах, Килобайтах или Гигабайтах (1G
,5000K
,200M
,1024000000
), если заданоunlimited
, то не лимитировать данный параметр;--nproc
— разрешённое число процессов одновременно существующих в LS, если заданоunlimited
, то не лимитировать данный параметр;--json
— сформировать вывод утилиты о результате исполнения в json-формате;--nowait
— не ждать снятия блокировки файла базы данных, если файл заблокирован, то завершить работуlsctl
немедленно;--unlimited
— отключить лимитирование по всем параметрам для LS;--force-save
— запретить изменение унаследованных отdefault
значений при изменении значенийdefault
.
Вывод на консоль
Пусто или сообщение об ошибке.
Результат
0
— в случае успеха, не0
— в случае ошибки.Примеры использования команды
$ sudo lsctl set --lsid=1020 --cpu=unlimited --pmem=4G
$ sudo lsctl set --lsid=0 --cpu=200% --pmem=4G --smem=2G --nproc=48
$ sudo lsctl set-user --username=test1 --cpu=25% --force-save
$ sudo lsctl set --lsid=1020 --unlimited
Результат работы в случае ошибки
$ sudo lsctl set --lsid=1020 --cpu=unlimited --pmem=4G init error: -111
$ sudo lsctl set --lsid=1020 --cpu=unlimited --pmem=4G --json { "err": "init error: -111", "data": null }
lsctl list и lsctl list-user
Описание
Отобразить список установленных лимитов в базе данных утилиты
lsctl
LS-для контейнеров. Для командыlsctl list
выводятся номера контейнеров, а для командыlsclt list-user
выводятся имена пользователей системы вместо id LS-контейнера.Обязательные параметры
Нет.
Дополнительные параметры
--json
— сформировать вывод утилиты о результате исполнения в json-формате;--nowait
— не ждать снятия блокировки файла базы данных, если файл заблокирован, то завершить работуlsctl
немедленно;--human
— вывод данных в формате для чтения с форматированием:0
— отключить,1
— вывод таблицы без сворачивания больших чисел,2
— вывод таблицы со сворачиванием больших чисел. Значение по умолчанию —0
.
Вывод на консоль
Сообщение об ошибке или список значений в формате:
ID CPU PMEM SMEM NPROC 0 150 1073741824 2147483648 32 1000 150 1073741824 2147483648 32 1003 150 1073741824 2147483648 32 1004 150 1073741824 2147483648 16 1005 150 1073741824 2147483648 16 1006 0 1073741824 2147483648 32 1007 200 1073741824 1073741824 32 1009 150 1073741824 2147483648 32 1020 0 4294967296 2147483648 32
Где:
ID
— номер LS-контейнера или имя пользователя системы (если такой существует);CPU
— лимитcpu
в%
;PMEM
— лимит памяти в Байтах;SMEM
— лимит файла подкачки в Байтах;NPROC
— лимит процессов в LS-контейнере.
Вывод
lsctl list-user
ID CPU PMEM SMEM NPROC default 150 1073741824 2147483648 32 alexey 150 1073741824 2147483648 32 test3 150 1073741824 2147483648 32 user1 150 1073741824 2147483648 16 user2 150 1073741824 2147483648 16 testuser1 0 1073741824 2147483648 32 1007 200 1073741824 1073741824 32 1009 150 1073741824 2147483648 32 1020 0 4294967296 2147483648 32
Вывод
json
:{ "err": "", "data": [ { "Id": 0, "Cpu": 150, "Pmem": 1073741824, "Smem": 2147483648, "Nproc": 32, "Uname": "default" }, { "Id": 1000, "Cpu": 150, "Pmem": 1073741824, "Smem": 2147483648, "Nproc": 32, "Uname": "alexey" }, ... ] }
Важно
Значение
0
в выводе параметраCPU=0
илиPMEM=0
означает, что данный параметр имеет значениеunlimited
, т.е. не лимитируется.Результат
0
— в случае успеха, не0
— в случае ошибки.Примеры использования команды
$ sudo lsctl list
$ sudo lsctl list-user
$ sudo lsctl list --json
Пример вывода в виде, удобном для чтения (
--human=1
или--human=2
).$ sudo lsctl list --human=1 ID | CPU | PMEM | SMEM | NPROC ----- | ---------- | ----------- | ----------- | ---------- 0 | 50 | 2147483648 | 1073741824 | 64 1001 | 80 | 4294967296 | 2147483648 | 24 1002 | unlimited | unlimited | unlimited | unlimited
$ sudo lsctl list --human=2 ID | CPU | PMEM | SMEM | NPROC ----- | ---------- | ---------- | ---------- | ---------- 0 | 50% | 2.0GiB | 1.0GiB | 64 1001 | 80% | 4.0GiB | 2.0GiB | 24 1002 | unlimited | unlimited | unlimited | unlimited
Результат работы в случае ошибки
$ sudo lsctl list init error: -111
$ sudo lsctl list --json { "err": "init error: -111", "data": null }
lsctl delete и lsctl delete-user
Описание
Удалить значения лимитов LS-контейнера, указанного в команде, и удалить сведения о лимитах
lsid
из базы данных.Обязательные параметры
--lsid
— номер LS-контейнера больше0
(для командыlsctl delete
);--username
— имя пользователя в системе,uid
которого будет использован в качестве номера LS-контейнера, кромеroot
(для командыlsctl delete-user
).
Дополнительные параметры
--json
— сформировать вывод утилиты о результате исполнения в json-формате;--nowait
— не ждать снятия блокировки файла базы данных, если файл заблокирован, то завершить работуlsctl
немедленно.
Вывод на консоль
Cообщение об ошибке или пусто.
Результат
0
— в случае успеха, не0
— в случае ошибки.Примеры использования команды
$ sudo lsctl delete --lsid=1006
$ sudo lsctl delete-user --username=test1
$ sudo lsctl delete --lsid=1000 --json
Результат работы в случае ошибки
$ sudo lsctl delete --lsid=1006 init error: -111
$ sudo lsctl delete --lsid=1006 --json { "err": "init error: -111", "data": null }
Дополнительные пояснения о работе команды
Ниже показан вывод установленных лимитов для
default
и1006
:$ sudo lsctl list ID CPU PMEM SMEM NPROC 0 150 1073741824 2147483648 32 1006 0 1073741824 2147483648 32
$ sudo lsctl climits ID CPU PMEM SMEM NPROC 1006 0 1073741824 2147483648 32
Если вызвать команду
delete
, то она сбросит лимиты LS-контейнера кdefault
:$ sudo lsctl delete --lsid=1006
$ sudo lsctl list ID CPU PMEM SMEM NPROC 0 150 1073741824 2147483648 32
$ sudo lsctl climits ID CPU PMEM SMEM NPROC
lsctl climits и lsctl climits-user
Описание
Отобразить список загруженных на текущий момент и отслеживаемых службой
klsd
LS-контейнеров. Этот список может отличаться от списка, выводимого командойlsctl list
. Для командыlsctl climits
выводятся номера контейнеров, а для командыlsclt climits-user
выводятся имена пользователей системы вместо id LS-контейнера.Обязательные параметры
Нет.
Дополнительные параметры
--json
— сформировать вывод утилиты о результате исполнения в json-формате;--nowait
— не ждать освобождения блокировки к файлу базы данных, если файл заблокирован, то завершить работуlsctl
немедленно;--lsid
— задаёт номер LS-контейнера для отображения. Если данный параметр не задан, то отображаются все доступные, если номер задан, то отображается только информация по указанному контейнеру (для командыlsctl climits
);--username
— задаёт имя пользователя,uid
которого соответствуют LS-контейнеру для отображения. Если данный параметр не задан, то отображаются все доступные, если номер задан, то отображается только информация по указанному контейнеру (для командыlsctl climits-user
);--human
— печать данных в формате, удобном для чтения, с форматированием:0
— отключить,1
— печать таблицы без сворачивания больших чисел,2
— печать таблицы со сворачиванием больших чисел. Значение по умолчанию —0
.
Вывод на консоль
Сообщение об ошибке или список значений в формате:
ID CPU PMEM SMEM NPROC 1000 150 1073741824 2147483648 32 1003 150 1073741824 2147483648 32 1004 150 1073741824 2147483648 16 1005 150 1073741824 2147483648 16 1006 150 1073741824 2147483648 32 1007 200 1073741824 1073741824 32 1009 150 1073741824 2147483648 32
Где:
ID
— номер LS-контейнера или имя пользователя системы (если такой существует);CPU
— лимитcpu
в%
;PMEM
— лимит памяти в Байтах;SMEM
— лимит файла подкачки в Байтах;NPROC
— лимит процессов в LS-контейнере.
Вывод
lsctl climits-user --username=test3
:ID CPU PMEM SMEM NPROC test3 150 1073741824 2147483648 32
Вывод json командой
lsctl climits-user --username=test3 --json
:{ "err": "", "data": [ { "Id": 1003, "Cpu": 150, "Pmem": 1073741824, "Smem": 2147483648, "Nproc": 32, "Uname": "test3" } ] }
Важно
Значение
0
в выводе параметраCPU=0
илиPMEM=0
означает, что данный параметр имеет значениеunlimited
, т.е. не лимитируется.Результат
0
— в случае успеха, не0
— в случае ошибки.Примеры использования команды
$ sudo lsctl climits-user --username=test3 --json
$ sudo lsctl climits
$ sudo lsctl climits-user
$ sudo lsctl climits --lsid=1000
Пример вывода в виде, удобном для чтения (
--human=1
или--human=2
):$ sudo lsctl climits --human=1 ID | CPU | PMEM | SMEM | NPROC ----- | ---------- | ----------- | ----------- | ---------- 1001 | 80 | 4294967296 | 2147483648 | 24 1002 | unlimited | unlimited | unlimited | unlimited
$ sudo lsctl climits --human=2 ID | CPU | PMEM | SMEM | NPROC ----- | ---------- | ---------- | ---------- | ---------- 1001 | 80% | 4.0GiB | 2.0GiB | 24 1002 | unlimited | unlimited | unlimited | unlimited
Результат работы в случае ошибки
$ sudo lsctl climits init error: -111
$ sudo lsctl climits --json { "err": "init error: -111", "data": null }
lsctl destroy
Описание
Удалить LS-контейнер и завершить все процессы, которые обслуживает данный контейнер, но в базе останутся лимиты данного LS-контейнера. Восстановить контейнер можно командой
lsctl apply-all
илиlsctl apply --lsid=N
(гдеN
— номер контейнера).Обязательные параметры
--lsid
— номер LS-контейнера больше0
.
Дополнительные параметры
--json
— сформировать вывод утилиты о результате исполнения в json-формате;--nowait
— не ждать снятия блокировки файла базы данных, если файл заблокирован, то завершить работуlsctl
немедленно;
Вывод на консоль
Сообщение об ошибке или пусто.
Результат
0
— в случае успеха, не0
— в случае ошибки.Примеры использования команды
$ sudo lsctl destroy --lsid=1006
$ sudo lsctl destroy --lsid=1000 --json
Результат работы в случае ошибки
$ sudo lsctl destroy --lsid=1006 init error: -111
$ sudo lsctl destroy --lsid=1006 --json { "err": "init error: -111", "data": null }
Дополнительные пояснения о работе команды
Ниже показан вывод установленных лимитов для
default
и1009
:$ sudo lsctl list ID CPU PMEM SMEM NPROC 0 150 1073741824 2147483648 32 1009 150 1073741824 2147483648 32
$ sudo lsctl climits ID CPU PMEM SMEM NPROC 1009 150 1073741824 2147483648 32
Если вызвать команду
destroy
, тоlsctl list
не изменится, изменится вывод текущих загруженных LS-контейнеров:$ sudo lsctl destroy --lsid=1009 $ sudo lsctl list ID CPU PMEM SMEM NPROC 0 150 1073741824 2147483648 32 1009 150 1073741824 2147483648 32
$ sudo lsctl climits ID CPU PMEM SMEM NPROC
LS-контейнер исчез, остались только его настройки в базе
lsctl
, которые восстановятся либо после перезагрузки службыklsd
, либо при вызове командыlsctl apply-all
илиlsctl apply --lsid=1009
.
lsctl destroy-all
Описание
Команда, аналогичная
lsctl destroy
, но удаляет все загруженные LS-контейнеры. Настройки в базе не удаляются.Обязательные параметры
Нет.
Дополнительные параметры
--json
— сформировать вывод утилиты о результате исполнения в json-формате;--nowait
— не ждать снятия блокировки файла базы данных, если файл заблокирован, то завершить работуlsctl
немедленно.
Вывод на консоль
Сообщение об ошибке или пусто.
Результат
0
— в случае успеха, не0
— в случае ошибки.Примеры использования команды
$ sudo lsctl destroy-all
$ sudo lsctl destroy-all --json
Результат работы в случае ошибки
$ sudo lsctl destroy-all init error: -111
$ sudo lsctl destroy-all --json { "err": "init error: -111", "data": null }
lsctl apply-many
Описание
Команда, аналогичная
lsctl apply --lsid=...
. Передать и применить значения указанного LS-контейнера из базы данных утилитыlsctl
службе управления лимитамиklsd
. Но вместо--lsid
список нужных LS-контейнеров команда принимает черезstdin
. Списокlsid
должен разделяться символом переноса строки.Обязательные параметры
Нет.
Дополнительные параметры
--json
— сформировать вывод утилиты о результате исполнения в json-формате;--nowait
— не ждать снятия блокировки файла базы данных, если файл заблокирован, то завершить работуlsctl
немедленно.
Примеры использования команды
$ sudo lsctl climits --human=2 ID | CPU | PMEM | SMEM | NPROC --- | ---- | ----- | ----- | ------
$ sudo echo -e "1001\n1002" | lsctl apply-many $ sudo lsctl climits --human=2 ID | CPU | PMEM | SMEM | NPROC ----- | ---------- | ---------- | ---------- | ---------- 1001 | 80% | 4.0GiB | 2.0GiB | 24 1002 | unlimited | unlimited | unlimited | unlimited
Результат работы в случае ошибки
$ sudo echo -e "1001\n1002" | lsctl apply-many init error: -111
$ sudo echo -e "1001\n1002" | lsctl apply-many --json { "err": "init error: -111", "data": null }
lsctl destroy-many
Описание
Команда, аналогичная
lsctl destroy --lsid=...
. Удалить LS-контейнер и завершить все процессы, которые обслуживает данный контейнер. В базе лимиты данного LS-контейнера не удаляются. Вместо--lsid
список нужных LS-контейнеров команда принимает черезstdin
. Списокlsid
должен разделяться символом переноса строки.Обязательные параметры
Нет.
Дополнительные параметры
--json
— сформировать вывод утилиты о результате исполнения в json-формате;--nowait
— не ждать снятия блокировки файла базы данных, если файл заблокирован, то завершить работуlsctl
немедленно.
Примеры использования команды
$ sudo lsctl climits --human=2 ID | CPU | PMEM | SMEM | NPROC ----- | ---------- | ---------- | ---------- | ---------- 1001 | 80% | 4.0GiB | 2.0GiB | 24 1002 | unlimited | unlimited | unlimited | unlimited
$ sudo echo -e "1001\n1002" | lsctl destroy-many $ sudo lsctl climits --human=2 ID | CPU | PMEM | SMEM | NPROC --- | ---- | ----- | ----- | ------
Результат работы в случае ошибки
$ sudo echo -e "1001\n1002" | lsctl destroy-many init error: -111
$ sudo echo -e "1001\n1002" | lsctl destroy-many --json { "err": "init error: -111", "data": null }
lsctl export-limits
Описание
Сохранить базу данных с лимитами в json-формате в файле.
Обязательные параметры
Путь к файлу. Если путь не задан, то лимиты сохранятся в файле
export-database.json
в текущем каталоге, в котором вызвана команда.Дополнительные параметры
--json
— сформировать вывод утилиты о результате исполнения в json-формате;--nowait
— не ждать снятия блокировки файла базы данных, если файл заблокирован, то завершить работуlsctl
немедленно.
Вывод на консоль
Сообщение об ошибке или пусто.
Результат
0
— в случае успеха, не0
— в случае ошибки.Примеры использования команды
$ sudo lsctl export-limits
$ sudo lsctl export-limits dblimit.json
Результат работы в случае ошибки
$ sudo lsctl export-limits init error: -111
$ sudo lsctl export-limits --json { "err": "init error: -111", "data": null }
lsctl import-limits
Описание
Восстановить базу данных с лимитами из json-файла, сохранённого командой
export-limits
. Внимание! Если база данных с лимитами уже существует, то она будет удалена и полностью заменена данными из импортируемого json-файла.При импорте лимитов новые значения сразу же применяются к LS-контейнерам.
Обязательные параметры
Путь к файлу. Если путь не задан, то лимиты сохранятся в файле
import-database.json
в текущем каталоге, в котором вызвана команда.Дополнительные параметры
--json
— сформировать вывод утилиты о результате исполнения в json-формате;--nowait
— не ждать снятия блокировки файла базы данных, если файл заблокирован, то завершить работуlsctl
немедленно.
Вывод на консоль
Сообщение об ошибке или пусто.
Результат
0
— в случае успеха, не0
— в случае ошибки.Примеры использования команды
$ sudo lsctl import-limits
$ sudo lsctl import-limits dblimit.json
Результат работы в случае ошибки
$ sudo lsctl import-limits init error: -111
$ sudo lsctl import-limits --json { "err": "init error: -111", "data": null }
lsctl list-sessions
Описание
Отобразить список активных LS-контейнеров и лидера сессий, т.е. процесс, который инициировал создание LS-контейнера.
Обязательные параметры
Нет.
Дополнительные параметры
--json
— сформировать вывод утилиты о результате исполнения в json-формате;--nowait
— не ждать снятия блокировки файла базы данных, если файл заблокирован, то завершить работуlsctl
немедленно;--human
— вывод данных в формате, удобном для чтения с форматированием:0
— отключить,1
— вывод таблицы без сворачивания больших чисел,2
— вывод таблицы со сворачиванием больших чисел. Значение по умолчанию —0
.
Вывод на консоль
Сообщение об ошибке или список значений в формате:
ID SID SFLAGS SNPROC PID 1002 1 5 0 20843
Где:
SFLAGS
,SNPROC
,SID
— зарезервированные системные параметры;ID
—lsid
— идентификатор LS-контейнера;PID
— идентификатор процесса лидера LS-контейнера, т.е. процесса, который вызвалlfs_enter
.
Примеры вывода:
$ sudo lsctl list-sessions ID SID SFLAGS SNPROC PID 1002 1 5 0 20843
$ sudo lsctl list-sessions --human=1 ID | SID | SFLAGS | SNPROC | PID ----- | ---- | ------- | ------- | ------ 1002 | 1 | 5 | 0 | 20843