Сбросить atq до нуля?

Я использую это довольно давно, и я заметил, что идентификаторы at рабочем месте, кажется, увеличиваются навсегда.

 $ atq 332 Mon Sep 23 17:25:00 2013 a cklein $ # I'm up to 332 at jobs! 

Интересно, что, at видимому, не хватает данных о завершенных работах.

 $ at -c 331 Cannot find jobid 331 

Возможно ли вернуть номер этого задания обратно в 0?

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 
  • Получить pid длинной команды, выполняемой через
  • по команде: Garbled time
  • Можно планировать задачи с помощью at и передавать текущее время в качестве параметра с некоторыми операциями
  • Что делает опция -b при использовании команды `at`, если что?
  • Мне нужна помощь с командой «at»
  • Удалить файл в указанное время не интерактивно
  • Как получить клавиши со стрелками в подсказке at>
  • помогите понять поведение в + x минуты
  • Почему `at` предупреждает меня, что команды будут выполняться с помощью / bin / sh? Что делать, если я хочу другую оболочку?
  • Linux и Unix - лучшая ОС в мире.