Acione o trabalho apenas uma vez e somente quando a carga estiver baixa

Acione o trabalho apenas uma vez e somente quando a carga estiver baixa

Gostaria que minhas gtags fossem atualizadas automaticamente, mas somente quando o sistema estiver ocioso.

Para conseguir isso, estou usando iupdatepara monitorar as partes interessantes da minha pasta de origem. Mas estou com um problema na parte "idle": sei que o batchcomando pode executar jobs quando a carga cai abaixo de 1,5 (ou de um valor configurado). Mas pode acontecer que ele seja iupdateexecutado batchvárias vezes antes da execução do trabalho, o que levaria a várias atualizações de gtags.

É claro que eu poderia criar algum arquivo de bloqueio e iniciar batchapenas se não tivesse sido chamado antes.

Mas existe algum método mais padrão? Estou esperando por algo como batch_only_once...

Responder1

Isso fará isso por você:

$ 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).

Responder2

Você pode criar um script wrapper que primeiro analisará atqe removerá outros trabalhos em lote usando atrm.

informação relacionada