
編集してタイムゾーンをリセットしたいです/etc/timezone
。ところが編集を終えてファイルを保存したのにそれに合わせてシステム時間が変わりませんでした。
一方、dpkg-reconfigure tzdata
時間帯を変更するコマンドを使用すると、時間が即座に変更されます。また、/etc/timezone
それに応じてファイルが変更されます。
構成ファイルを編集して保存した後に新しい時間を適用するには、どの手順を省略する必要がありますか?
答え1
これでうまくいくことがわかったので、dpkg-reconfigure tzdata
試してみてはいかがでしょうか?
問題がインタラクティブで、変更をスクリプト化したい場合はこれが可能です。タイムゾーンは次のように構成されます。デブカンファレンス。次のコマンドを使用して値を設定できますdebconf-set-selections
。その後、パッケージを再構成し、何も尋ねないように指示します。
debconf-set-selections <<EOF
tzdata tzdata/Areas select Europe
tzdata tzdata/Areas seen true
tzdata tzdata/Zones/Europe select Paris
tzdata tzdata/Zones/Europe seen true
EOF
dpkg-reconfigure -fnoninteractive tzdata
/etc/localtime
アプリケーションは、最初に必要なときにタイムゾーン情報を読み込みます。これはシステムの標準ライブラリによって実行されるため、例外はあまり見つかりません。/etc/localtime
通常、以下のファイルへのシンボリックリンク/usr/share/zoneinfo
またはそのファイルのコピーです。ほとんどのアプリケーションは、このファイルの変更を適用するために再起動する必要があります。
このファイルには/etc/timezone
タイムゾーン名が含まれています。通常は/etc/localtime
リンクまたはコピーです/usr/share/zoneinfo/$(cat /etc/timezone)
。/etc/timezone
主に(のみ?)パッケージングシステムで使用されるため、変更しても顕著な効果がない理由が説明されます。
TZ
環境変数(たとえば)を使用して特定のアプリケーションを起動すると、特定のアプリケーションで異なるタイムゾーンを使用できますTZ=Pacific/Tarawa date
。
答え2
見て、これが呼び出されたときに実行されると/var/lib/dpkg/info/tzdata.postinst
思います。dpkg-reconfigure tzdata
/etc/timezone
アップデート後に実行される次のコマンドに特に注意してください。
cp -f /usr/share/zoneinfo/$AREA/$ZONE /etc/localtime.dpkg-new && \
mv -f /etc/localtime.dpkg-new /etc/localtime
したがって、/ etc / localtimeファイルを更新する必要があります。まだやってはいませんが、時間帯を変える重要な段階だと思います。自分で編集した場合、tzdata
管理者が手動で変更したいかどうかはわかりません/etc/timezone
。
答え3
service timezone restart
これを適用するには手動で実行することもできます。これはほとんどすべてのシステムプロファイルで機能します。ファイルが変更されたら、これらの構成に依存するすべてのサービスを再起動する必要があります。
ファイルを変更する/etc/timezone
だけで十分ですが、通常適用するには再起動するか、少なくともログインする必要があります。タイムゾーンの変更は、システムメーカーが期待するものではなく、頻繁に読み直す必要がある設定ファイルになるのに十分です。
初めてログインするときに設定した環境変数のため、再度ログインする必要がある場合があります。たとえば、システム言語変数は通常ログイン時に設定され、プロファイルを変更してもログインしたユーザーには影響しません。
答え4
次のスクリプトを使用して、ユーザーに設定するタイムゾーンを尋ね、実際に設定されていることを確認します。
#!/bin/sh
sudo timedatectl set-timezone $(tzselect)
echo
echo timedatectl says:
timedatectl
私はそれを呼ぶtz-set
。