Como iniciar o aplicativo apenas no horário?

2

Eu gostaria de começar no boot do Slack apenas quando estou no trabalho (basicamente, das 10:00 às 18:00 nos dias úteis). Eu realmente não quero escrever scripts personalizados, gostaria de verificar isso de uma maneira melhor, por exemplo:

Mas como? Minha primeira abordagem é usar o @reboot com a data do cron - não parece que é possível. Em segundo lugar, eu tentei procurar a ferramenta, que você passa a string de teste no formato crontab e obtendo o código de erro 1 ou 0 de volta - sem sorte aqui.

Poderia, por favor, me apontar na direção certa?

    
por Tymur Valiiev 10.04.2018 / 13:51

1 resposta

1

O comando date +%u produzirá o dia da semana como número. O comando date +%k mostrará a hora atual no formato 24h. Podemos usar a substituição de comando $() e os colchetes duplos do teste [[ para criar uma condição apropriada:

bash -c '[[ $(date +%u) == [1-5] && $(date +%k) == 1[0-7] ]] && /path/executable'
  • [1-5] - é uma expressão regular que descreve os dias úteis da semana.
  • 1[0-7] - é um regexp que descreve as horas de trabalho, cobrirá das 10:00 às 17:59.

  • /path/executable é uma sinopse do comando / aplicativo que você deseja executar.

  • Dentro da expressão [[ <condition-1> && <condition-2> ]] , a lógica e && significam que ambas as condições devem ser atendidas.

De acordo com a pergunta, você pode usar o comando acima em crontab ou com Startup Applications. Para alguns motivos eu preferiria usar Aplicativos de inicialização .

    
por pa4080 10.04.2018 / 15:38