Я хотел бы автоматически обновлять свои gtags, но только когда система бездействует.
Чтобы добиться этого, я использую iupdate
для наблюдения за интересными частями моей исходной папки. Но у меня есть проблема с частью "idle": я знаю, что команда batch
может запускать задания, когда нагрузка падает ниже 1,5 (или настроенного значения). Но может случиться так, что iupdate
запустится batch
несколько раз, прежде чем задание будет выполнено, что приведет к нескольким обновлениям gtags.
Конечно, я мог бы создать какой-нибудь файл блокировки и запустить его batch
только в том случае, если он не был вызван ранее.
Но есть ли какой-то более стандартный метод? Я надеюсь на что-то вроде batch_only_once
...
решение1
Это сделает это за вас:
$ cat /etc/lsb-release | grep -i desc
DISTRIB_DESCRIPTION="Ubuntu 14.04 LTS"
$ apt-cache show run-one
....
Description-en: run just one instance of a command and its args at a time
This utility will run just one instance at a time of some command and
unique set of arguments (useful for cronjobs, eg).
решение2
Вы можете создать скрипт-оболочку, который сначала проанализирует atq
и удалит другие пакетные задания с помощью atrm
.