Сбросить atq до нуля?
Я использую это довольно давно, и я заметил, что идентификаторы at
рабочем месте, кажется, увеличиваются навсегда.
$ atq 332 Mon Sep 23 17:25:00 2013 a cklein $ # I'm up to 332 at jobs!
Интересно, что, at
видимому, не хватает данных о завершенных работах.
- Останавливается ли в запланированных задачах после перезагрузки?
- Можно ли скопировать расширение в команде `at`?
- Остановка одной команды, запланированной командой, кроме других
- Удалить все «в» Задания, кроме первых пяти заданий
- Экстракт TOC файла epub
$ at -c 331 Cannot find jobid 331
Возможно ли вернуть номер этого задания обратно в 0?
- Команда at внезапно / случайным образом выполняет задания
- Почему не работает dzen2 при вызове через?
- Выполнить команду за две минуты
- как правильно планировать задачу, которая планирует задачу с помощью «at» (atd)? или как правильно указывать / бежать в bash
- Убить все задания в очереди
- «At» (пакетная) задание + диалог = ничего
- Может ли команда «at» выполнить любой скрипт оболочки?
- Как передать аргументы в сценарий оболочки bash при выполнении этой команды с помощью?
One Solution collect form web for “Сбросить atq до нуля?”
Перезапуск службы atd
не сбросил идентификатор задания, как мы подозревали:
пример
некоторые тестовые материалы
$ at -f test.bash now job 105 at Mon Sep 23 20:04:00 2013 $ at -f test.bash now job 106 at Mon Sep 23 20:04:00 2013
двойная проверка катушки
$ sudo ls -l /var/spool/at/spool/ total 0
перезапуск atd
$ sudo /etc/init.d/atd restart Остановка atd: [OK] Начало atd: [OK]
последующие заявки на испытания
$ at -f test.bash now job 107 at Mon Sep 23 20:05:00 2013 $ at -f test.bash now job 108 at Mon Sep 23 20:05:00 2013
Копать глубже
Поэтому, если вы посмотрите на исполняемый файл atd
с помощью такого инструмента, как lsof
вы заметите следующее:
$ sudo lsof | grep atd atd 22341 root cwd DIR 253,0 4096 2103653 /var/spool/at atd 22341 root rtd DIR 253,0 4096 2 / atd 22341 root txt REG 253,0 24712 1192814 /usr/sbin/atd atd 22341 root mem REG 253,0 57440 393478 /lib64/libnss_files-2.13.so atd 22341 root mem REG 253,0 387352 393694 /lib64/libfreebl3.so atd 22341 root mem REG 253,0 43304 393695 /lib64/libcrypt-2.13.so atd 22341 root mem REG 253,0 99128 393328 /lib64/libaudit.so.1.0.0 atd 22341 root mem REG 253,0 22536 393671 /lib64/libdl-2.13.so atd 22341 root mem REG 253,0 1956608 393664 /lib64/libc-2.13.so atd 22341 root mem REG 253,0 13776 393333 /lib64/libpam_misc.so.0.82.0 atd 22341 root mem REG 253,0 55280 393331 /lib64/libpam.so.0.82.2 atd 22341 root mem REG 253,0 124592 393682 /lib64/libselinux.so.1 atd 22341 root mem REG 253,0 151456 393578 /lib64/ld-2.13.so atd 22341 root 0u CHR 1,3 0t0 4066 /dev/null atd 22341 root 1u CHR 1,3 0t0 4066 /dev/null atd 22341 root 2u CHR 1,3 0t0 4066 /dev/null atd 22341 root 3uW REG 253,0 6 1966556 /var/run/atd.pid
Исследование катушки.
Таким образом, нет открытого файла, но есть каталог /var/spool/at
, поэтому давайте расследуем немного дальше:
$ sudo ls -la /var/spool/at/ total 20 drwx------. 3 daemon daemon 4096 Sep 23 20:42 . drwxr-xr-x. 15 root root 4096 Aug 8 2011 .. -rw-------. 1 daemon daemon 6 Sep 23 20:05 .SEQ drwx------. 2 daemon daemon 4096 Sep 23 20:42 spool
Бинго! Есть то, что мы ищем, файл под названием .SEQ
. В файле больше:
$ sudo more .SEQ 0006c
Мы можем убедиться в том, что это правильное значение с помощью bc
для преобразования этого значения из шестнадцатеричного в десятичное:
$ echo "ibase=16; 0006C"|bc 108
Эксперимент
Кажется, что здесь стоит номер в шестнадцатеричном формате. Мы можем сделать небольшой эксперимент и изменить это значение на 0. Но сначала остановите службу atd
.
$ sudo /etc/init.d/atd stop ...edit file using vim, change it to 0... $ sudo /etc/init.d/atd start
Теперь выполните еще один тест:
$ at -f test.bash now job 1 at Mon Sep 23 20:52:00 2013
И число перезапустилось, мы вернулись к 1. Если я остановлюсь, отредактируйте, запустите его снова и 0006c
значение 0006c
:
$ at -f test.bash now job 109 at Mon Sep 23 20:53:00 2013
Тайна решена.
Заметка о других дистрибутивах
Вышеупомянутое было зациклировано на системе Fedora, другие дистрибутивы, такие как Debian & Ubuntu, могут хранить файл .SEQ
в совершенно другом каталоге. Например, Ubuntu сохраняет файл следующим образом:
$ sudo pwd /var/spool/cron/atjobs $ sudo ls -la total 12 drwxrwx--T 2 daemon daemon 4096 Sep 23 21:19 . drwxr-xr-x 5 root root 4096 Oct 17 2012 .. -rw------- 1 daemon daemon 6 Sep 23 21:19 .SEQ