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 Filamentを使用した管理画面...

前回Breezeをインストールしたこと...

Laravel Filamentを使用した管理画面...

前回、filamentでのリソース作成...

Laravel Filamentを使用した管理画面...

前回、Filamentをインストールし...