~/.bashrc によりbash起動時に1回だけ自動実行させることによって。
前回
~/.bash_profile
に時刻同期コマンドを書く- ターミナル起動し、以下コマンド実行
$ bash -l
これで時刻同期できるが、打つたびに約7秒間、応答が無くなる。これを初回だけにしたかったが、できなかった。
一時ファイルを作成して実行済み判定した。が、じつは~/.bash_profile
はログイン直後に自動で実行されていた。それで時刻同期されていれば問題なかったのだが、なぜか時刻同期だけはされなかった。date
コマンドで確認した。なのに一時ファイルだけが作成されてしまった。そのせいで、時刻同期コマンドが二度と実行されないという最悪な状況に陥った。
今回
~/.bash_profile
の内容を削除かコメントアウトする~/.bashrc
にコマンドを移し替える- ターミナルを起動する
これで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