3 # timezone Set time zone information.
4 # chkconfig: 2345 10 90
5 # description: This script is setting time zone information for your machine.
8 [ -f /etc/sysconfig/timezone ] || exit 0
10 # Source function library.
11 . /etc/rc.d/init.d/functions
13 upstart_controlled --except status disable
15 . /etc/sysconfig/timezone
17 ZONE_FILE="$ZONE_INFO_DIR"
19 if [ -n "$ZONE_INFO_SCHEME" -a "$ZONE_INFO_SCHEME" != "posix" ]; then
20 ZONE_FILE="$ZONE_FILE/$ZONE_INFO_SCHEME"
23 ZONE_FILE="$ZONE_FILE/$TIMEZONE"
25 [ -L /etc/localtime ] && [ "$(resolvesymlink /etc/localtime)" = "$ZONE_FILE" ] && exit 0
28 if [ -f /var/lock/subsys/timezone ]; then
29 msg_already_running timezone
33 if [ -f "$ZONE_FILE" ]; then
36 MESSAGE=$(nls 'Setting time zone information (%s)' "$TIMEZONE")
38 if [ -n "$(awk '$2 == "/usr" { print $2 }' /proc/mounts 2> /dev/null)" ]; then
39 run_cmd "$MESSAGE" cp -af "$ZONE_FILE" /etc/localtime
41 run_cmd "$MESSAGE" ln -sf "$ZONE_FILE" /etc/localtime
44 restorecon /etc/localtime >/dev/null 2>&1
46 show "Missing %s file" "$ZONE_FILE"
51 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/timezone
55 rm -f /var/lock/subsys/timezone >/dev/null 2>&1
59 run_cmd "Unsetting time zone information" rm -f /etc/localtime
62 # return true if FILE1 and FILE2 are identical
65 test -f "$1" || return 1
66 test -f "$2" || return 1
67 crc1=$(cksum "$1" | awk '{print $1}')
68 crc2=$(cksum "$2" | awk '{print $1}')
73 # See how we were called.
81 restart|try-restart|reload|force-reload)
89 nls 'Timezone is configured to %s' "$TIMEZONE"
90 if [ ! -f "$ZONE_FILE" ]; then
91 nls "Missing %s file" "$ZONE_FILE"
93 elif ! identical "$ZONE_FILE" /etc/localtime; then
94 nls 'Current time zone differs from %s' "$TIMEZONE"
99 msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|disable|status}"