Como evitar que tarefas do cron sejam executadas durante determinados horários no Debian? (um 'jogo' / 'modo de desempenho')

12

Parece que eu tenho o logcheck configurado como uma tarefa do cron e sempre que ele é executado, o processo grep by logcheck ocupa cerca de ¼ da minha CPU.

Agora tenho alguns momentos em que preciso da capacidade total da minha CPU e faço com que o meu sistema consuma menos recursos possível, exceto para processos / processos específicos (que talvez eu pudesse especificar de alguma forma).

É possível configurar meu Debian 9.1 com a máquina do KDE em algum tipo de modo de desempenho (ou 'Modo de jogo') que evita que processos iniciados explicitamente pelo usuário consumam muitos recursos do sistema, reduz a carga de processos em segundo plano e o mais importante: atrasos agendam trabalhos até que esse modo seja parado novamente?

    
por mYnDstrEAm 04.09.2017 / 12:34

2 respostas

18

Se "determinados horários" não forem corrigidos, isto é, você deseja especificar manualmente quando o sistema entra e sai do "modo de desempenho", basta parar e iniciar o cron :

sudo systemctl stop cron

impedirá que qualquer trabalho do cron seja executado e

sudo systemctl start cron

irá reativá-los.

Você também pode verificar anacron em vez de cron , pode ser mais fácil ajustar globalmente de uma maneira que se ajuste aos seus usos.

    
por 04.09.2017 / 13:13
12

Eu consideraria duas abordagens

  1. Deixe o agendamento intacto, mas execute todos os trabalhos cron em nice e, possivelmente, até mesmo ionice :

    0 * * * *    root    ionice -c3 nice /some/command and parameters
    
  2. Não permitir quaisquer trabalhos cron durante determinados períodos. Lembre-se de que qualquer usuário que possa criar (ou remover) o arquivo de sinalizador pode controlar essa abordagem. Isso pode funcionar se você quiser ter um modo de jogo configurado sob demanda , adicionando os comandos touch e rm ao script de inicialização do seu jogo. (Pode ser necessário usar /tmp em vez de /var/run , mas é trivialmente aberto para qualquer usuário.)

    0 18 * * *      root    touch /var/run/no_cron
    0 19 * * *      root    rm -f /var/run/no_cron
    
    0 * * * *       root    test ! -f /var/run/no_cron && /some/command...
    

Após a configuração, nenhuma abordagem exige acesso root. Além disso, você pode decidir com antecedência quais tarefas devem estar sujeitas a esse controle e quais não devem.

    
por 04.09.2017 / 13:07