Task Spooler описание
Сегодня я наткнулся на классную утилиту командной строки Linux под названием «Task Spooler».
Как сказано в названии, – это пакетная система Unix, которая может быть использована для добавления команд Linux в очередь и выполнения их один за другим в числовом порядке (в порядке возрастания, если быть точным).
Не путайте его с помощью команды «at», которая используется для выполнения команд Linux в указанное время.
В отличие от команды at,Task Spooler запускает команду сразу из очереди, как только закончится предыдущая команда.
Добавить команды Linux в очередь и выполнить их один за другим
Установка Task Spooler
На Debian, Ubuntu, Linux Mint:
Task Spooler доступен в репозиториях по умолчанию для Debian, Ubuntu и других систем на основе DEB.
Таким образом, вы можете установить его с помощью команды:
$ sudo apt-get install task-spooler
Для других систем вы можете загрузить исходный файл Spooler Task из этой ссылки и создать его как родной пакет для дистрибутива Linux, который вы используете, и установить его, как описано в любом из следующих способов.
Использование
Давайте посмотрим на некоторые практические примеры.
Все приведенные здесь примеры протестированы в системе Ubuntu 16.04 LTS.
Примечание. В Debian / Ubuntu диспетчер задач может быть запущен командой «tsp», потому что есть еще одна программа с тем же именем, что и ts (инструмент «Time Stamping Authority tool» (клиент / сервер). Для дистрибутивов Linux, отличных от Ubuntu / Debian, вы можете запустите его, используя команду ts.
Запустить команду tsp:
$ tsp
Прямо сейчас в очереди нет ничего.
Добавим некоторые команды в очередь.
Для этого запустите:
$ tsp echo Welcome OSTechNix
$ tsp echo "Hello World"
Теперь запустите команду tsp еще раз, чтобы просмотреть команды в очереди:
$ tsp
Пример вывода:
ID State Output E-Level Times(r/u/s) Command [run=0/1] 0 finished /tmp/ts-out.jpHIG1 0 0.01/0.00/0.00 echo Welcome OSTechNix 1 finished /tmp/ts-out.8H6LLB 0 0.00/0.00/0.00 echo Hello World
Как видно из вышесказанного, каждая команда имеет уникальный идентификатор в (0, 1, 2 и т. Д.) В порядке возрастания.
Кроме того, он показывает текущий статус команд (например, законченный или запущенный) в очереди.
Команды echo очень простые и короткие, поэтому мы получили результат как “ended”.
Давайте запустим некоторую команду, для которой требуется больше времени.
$ tsp find / -type f -printf '%T+ %p\n' | sort | head -n 20
Эта команда найдет и отобразит 20 самых старых файлов в корневой (/) файловой системе.
Пример вывода
2
Теперь запустите команду tsp, чтобы просмотреть список команд в очереди.
$ tsp
Пример вывода
ID State Output E-Level Times(r/u/s) Command [run=1/1] 2 running /tmp/ts-out.79rMXn find / -type f -printf %T+ %p\n 0 finished /tmp/ts-out.jpHIG1 0 0.01/0.00/0.00 echo Welcome OSTechNix 1 finished /tmp/ts-out.8H6LLB 0 0.00/0.00/0.00 echo Hello World
Как видно из вышеприведенного вывода, выполняется команда с ID 2.
Аналогично, вы можете добавить столько, сколько команд, которые вы хотите запустить, используя диспетчер задач.
Чтобы просмотреть результаты выполнения задания, чтобы проверить, что происходит, введите следующую команду:
$ tsp -c 2
Здесь 2 – идентификатор текущей команды. нажмите CTRL + C, чтобы вернуться в терминал. он не отменяет текущую команду.
Он будет только отследить вас до Терминала. Работа все равно будет работать на заднем плане.
Чтобы очистить все команды, которые завершены из очереди, выполните:
$ tsp -C
Вышеприведенная команда очистит последние завершенные команды из очереди.
Он не будет удалять какие-либо запущенные команды или команды в очереди.
Чтобы удалить команды из очереди, запустите ее с идентификатором задания, как показано ниже:
Кроме того, вы можете удалить команду (запущенную, завершенную, поставленную в очередь), указав ID, как показано ниже.
$ tsp -r 2