やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

ラズパイで時刻同期コマンドを1回だけ叩けた ~/.bashrc

~/.bashrc によりbash起動時に1回だけ自動実行させることによって。

前回

  1. ~/.bash_profileに時刻同期コマンドを書く
  2. ターミナル起動し、以下コマンド実行
$ bash -l

これで時刻同期できるが、打つたびに約7秒間、応答が無くなる。これを初回だけにしたかったが、できなかった。

一時ファイルを作成して実行済み判定した。が、じつは~/.bash_profileはログイン直後に自動で実行されていた。それで時刻同期されていれば問題なかったのだが、なぜか時刻同期だけはされなかった。dateコマンドで確認した。なのに一時ファイルだけが作成されてしまった。そのせいで、時刻同期コマンドが二度と実行されないという最悪な状況に陥った。

今回

  1. ~/.bash_profileの内容を削除かコメントアウトする
  2. ~/.bashrcにコマンドを移し替える
  3. ターミナルを起動する

これでOK。1回だけ時刻同期コマンドが実行される。~/.bash_profileに書くとログイン後に1回だけ自動実行される。これを回避した。

問題は、PC起動後、自分でターミナルを起動せねば時刻同期されないこと。自動化とは言えない。

だが、bash -lのコマンドを打たなくて良いので楽。IME辞書にコマンド登録して入力するより楽。

まとめ

.bashrcと.bash_profile

ファイル 実行タイミング
~/.bash_profile ログイン後。または $ bash -l実行時
~/.bashrc ターミナル起動時

~/.bash_profile で時刻同期されない罠

ログイン後に自動で時刻同期させたい。そう思って、以下の時刻同期コマンドを、~/.bash_profileに書いても、時刻同期されなかった。原因不明。

sudo ntpdate -u ntp.jst.mfeed.ad.jp