GUIを持たないシステムでは、システム起動(init)直後に指定された回数だけメッセージを印刷します。 [繰り返し]

GUIを持たないシステムでは、システム起動(init)直後に指定された回数だけメッセージを印刷します。 [繰り返し]

特定のシステムブート数(たとえば、1〜2回のシステムブートなど)についてメッセージを表示したいです。

メッセージをどこかに保存します。おそらく変数にあります。

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

メモ:

  • 私はUbuntu Server 16.04を使用していますが、目的はGUIなしでシステムにソリューションを提供することです。

  • このコードの目的は、何らかの理由で今がそれを行うのに良い時間であることを覚えていない場合は、特定のタスクを完了するように思い出させる良い方法を提供することです。

  • 私はRAMよりも「より深い」変数を保存する必要があると思います。おそらく私が作成したファイルに保存するか、別の方法で保存する必要があります。わかりません。

  • Cronは反復的であり、与えられた実行回数に収まらないので良いことではありません。

  • これは、電源がオフまたはオフになっている場合に便利です。reboot重要な作業を思い出させます。

言う

ユーザーがコンピュータの電源を入れたときにメインプロンプトが表示された瞬間、次に私が言及したメッセージが表示される状況を説明しようとしています。

答え1

IMHOの誰も見ていない場合は、「起動時に」実行する必要はないので、ログインの一部にすることをお勧めします... ~/.profile1)テストでアプリケーションがまだ存在するか、2)一部で確認できます。最後に警告した後(例:/ var / tmpにあるいくつかのファイルのタイムスタンプを確認して)、遅延時間が経過しました。この場合はもう一度警告してください(そして表示ファイルをタッチしてください)。

「私をいじめないでください」スクリプトを使用すると、bashがコマンドプロンプトに戻るたびに、それをbashのPROMPT_COMMAND変数に入れて実行することもできます。

答え2

システムに応じてcronを使用することもできます。@reboot

ただし、システムサービスファイルはより信頼性の高いアプローチかもしれません。

だから:

コメントで提案したとおり:サービスファイル...またはそのようなもの...そして...

このスクリプトは次のとおりです。

#!/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

またはそのようなもの。この問題を解決するには約15種類、このスクリプトを作成する方法は100種類です。

関連情報