Vagrant(VirtualBox)で時刻同期を意図的に解除するの巻

Date:

Share post:

ローカル環境(Vagrantを使用)で、未来日付での動作確認を行いたいケースに遭遇しました。最初はサーバのシステム時間を変更すればいいのでは?と簡単に思っておりました。いつもの通りVagrantで仮想環境を作成して、Webmin + Virtualmin をインストール後に、Webminの設定からシステム時間を変更・・・?!できません。

なぜかしらと思い調べてみますと、どうもVirtualboxで自動時刻同期を行なっている事が判明しました。

以下コマンドによりVirtualboxの時刻同期を無効化できます。

rootで実行
service vboxadd-service stop
or
systemctl stop vboxadd-service

無効化したのち、dateコマンドで時刻を設定します。

date -s "2023/11/01 10:00:00"
Wed Nov 1 10:00:00 JST 2023

dateの結果が表示されている通り、時刻変更ができました。

時刻同期を再度有効化するにはゲストOSをシャットダウンするか

service vboxadd-service start
or
systemctl start vboxadd-service

上記コマンドを実行する事で有効化できます。

ここで今更ながら思ったのですが、serviceとsystemctlの違いって何だろうと思い、備忘を兼ねて調べてみました。

serviceは、/etc/init.dにあるシェルスクリプトのファイルを指定することで、シェルを実行してくれます。
systemctlは/lib/systemdにある設定ファイルを指定して、コマンドを実行します。

ただ、CentOS7からはSystemdでのサービス管理に変更となったため、以下のような起動方法が使用できません。

例)
/etc/rc.d/init.d/sshd restart

なので基本的には、以下を使用します。

systemctl start サービス名

現在ではserviceコマンドを実行するとsystemctlにリダイレクトされます。

例)
service vboxadd-service stop
Redirecting to /bin/systemctl stop vboxadd-service.service

ちなみに、現在有効なサービス一覧の表示を行う場合

systemctl list-unit-files -t service

で確認できます。サーバのセキュリティ面を考えますと、上記コマンドで不要なサービスが動作していないかを確認することも大事かと思います。

Related articles

LaravelでPDF生成(mpdf)

EC関連のシステムなどでは請求書や領...

我流Flutter学習ステップ(6)スマホでの動作...

本シリーズ(?)の最初の投稿で書いた...

その「平均値」に意味はあるのか?

最近「平均」に関して思うところがあっ...

遅まきながら、Vagrant(Virtualbox...

前回は、pumaを常時起動のユーザーサ...