Обратитесь к моему следующему сообщению для решения, специфичного для Ubuntu.
Я знаю, что это форум Ubuntu, но я считаю, что ответ будет очень похож на то, как вы это сделаете в системе Red Hat. У меня нет системы Ubuntu, чтобы проверить это, но я проверил ее на Red Hat.
Все, что вам нужно сделать, это добавить строку к скрипту инициализации cron daemon. Установите и экспортируйте переменную окружения TZ, например:
export TZ=UTC
Затем перезапустите демона cron. Удостоверьтесь, что вы поместили этот экспорт в скрипт запуска демона cron ПОСЛЕ любых других настроек переменных и источников - я думаю, это может быть причиной того, что редактирование оригинального плаката скрипта /etc/default/cron
не сработало для него. Возможно, он установил его, но затем он был сброшен с помощью чего-то еще в скрипте.
Обратите внимание, что это повлияет только на самого демона cron, а не на задания, выполняемые через cron, поэтому, если вы хотите, чтобы задание cron использовало UTC в качестве своего часового пояса, вам также нужно будет установить его в самой задаче .
Вероятно, вы не можете скопировать этот дословный текст и работать в окне Ubuntu, но вот сценарий инициализации, который я использовал для проверки этого в Red Hat. Вы увидите экспорт прямо перед функцией start()
:
#!/bin/sh
#
# crond Start/Stop the cron clock daemon.
#
# chkconfig: 2345 90 60
# description: cron is a standard UNIX program that runs user-specified \
# programs at periodic scheduled times. vixie cron adds a \
# number of features to the basic UNIX cron, including better \
# security and more powerful configuration options.
### BEGIN INIT INFO
# Provides: crond crontab
# Required-Start: $local_fs $syslog
# Required-Stop: $local_fs $syslog
# Default-Start: 2345
# Default-Stop: 90
# Short-Description: run cron daemon
# Description: cron is a standard UNIX program that runs user-specified
# programs at periodic scheduled times. vixie cron adds a
# number of features to the basic UNIX cron, including better
# security and more powerful configuration options.
### END INIT INFO
[ -f /etc/sysconfig/crond ] || {
[ "$1" = "status" ] && exit 4 || exit 6
}
RETVAL=0
prog="crond"
exec=/usr/sbin/crond
lockfile=/var/lock/subsys/crond
config=/etc/sysconfig/crond
# Source function library.
. /etc/rc.d/init.d/functions
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
export TZ=UTC
start() {
if [ $UID -ne 0 ] ; then
echo "User has insufficient privilege."
exit 4
fi
[ -x $exec ] || exit 5
[ -f $config ] || exit 6
echo -n $"Starting $prog: "
daemon $prog $CRONDARGS
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
}
stop() {
if [ $UID -ne 0 ] ; then
echo "User has insufficient privilege."
exit 4
fi
echo -n $"Stopping $prog: "
if [ -n "'pidfileofproc $exec'" ]; then
killproc $exec
RETVAL=3
else
failure $"Stopping $prog"
fi
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
}
restart() {
stop
start
}
reload() {
echo -n $"Reloading $prog: "
if [ -n "'pidfileofproc $exec'" ]; then
killproc $exec -HUP
else
failure $"Reloading $prog"
fi
retval=$?
echo
}
force_reload() {
# new configuration takes effect after restart
restart
}
rh_status() {
# run checks to determine if the service is running or use generic status
status -p /var/run/crond.pid $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
exit 2
esac
exit $?