Imprime uma mensagem um determinado número de vezes, logo após a inicialização do sistema (init) em um sistema sem GUI [duplicado]

1

Eu quero que, para um determinado número de inicializações do sistema (digamos, 1 ou 2 inicializações do sistema), uma mensagem apareça.

Eu armazenarei a mensagem em algum lugar, talvez em uma variável:

message='If you finished testing, make sure to remove the testing application.'!'

Notas:

  • Eu uso o servidor Ubuntu 16.04 e viso uma solução para sistemas sem GUI.

  • O propósito do código é ter uma boa maneira de me lembrar de uma determinada tarefa, se, por alguma razão, não me lembro de que é um bom momento para fazê-lo.

  • Eu suponho que eu deveria armazenar a variável em algum lugar "mais fundo" do que a RAM, talvez em um arquivo que eu criei para ela, talvez outro método. Não tenho certeza.

  • Cron não é bom porque é repetitivo e não para um determinado número de execuções.

  • Isso é bom no caso de você reboot / desligar / falta de energia --- você recebe um lembrete para uma tarefa importante.

Esclarecimento

Eu tentei descrever um caso quando um usuário liga a máquina, e no momento em que o primeiro prompt aparece, junto com ele, aparecerá a mensagem que mencionei.

    
por Arcticooling 05.12.2017 / 04:11

2 respostas

2

IMHO sem propósito fazê-lo "na inicialização", se não houver ninguém para vê-lo, por isso é melhor fazer parte do seu login ... Você pode chamar um script do seu ~/.profile . O script pode verificar se 1) o aplicativo de teste ainda está lá e 2) algum atraso se passou desde a última vez que você avisou (por exemplo, verificando o registro de tempo de algum arquivo em / var / tmp). (e toca no arquivo do marcador).

Com esse script "não me chateie com muita frequência" você pode até executá-lo toda vez que o bash retorna ao prompt de comando colocando-o na variável PROMPT_COMMAND do bash.

    
por 05.12.2017 / 10:32
1

Dependendo do seu sistema, você pode usar o @reboot

do cron

No entanto, um arquivo de serviço systemd é provavelmente um método mais estável.

Então:

Como sugerido nos comentários: Este arquivo de serviço ... ou algo parecido ... e. ..

Este script:

#!/bin/bash
# Set _endcount to number of times you want to count minus one.
_endcount=2

if [ ! -f count.txt ]; then
   echo "1" > count.txt
   echo -e "No counter\nInitializing Counter"
   exit;
else 
   mycount=$( cat count.txt )
   if [ $mycount = $_endcount ]; then
      echo -e "If you finished testing, make sure to remove the testing application!"
      echo "1" > count.txt
   fi
   echo "Warning $mycount, Expires at $_endcount"
   count=$(($mycount + 1))
   echo "$count" > count.txt
fi

Ou algo parecido. Existem provavelmente 15 maneiras de resolver este problema e 100 maneiras de escrever este script.

    
por 05.12.2017 / 07:32