У меня есть образ ec2, созданный с помощью cron.
Эти задания не запускаются; Я обнаружил, что процесс cron сам по себе не запущен. Итак, я включил / usr / sbin / cron в /etc/rc.d/rc.local и создал еще один образ. Но все же по какой-то причине процесс cron не запускается при загрузке.
Если я перезапущу компьютер, запустится процесс cron. Он не запускается при загрузке!
По какой причине это происходит? Кроме того, есть ли другие альтернативы для этого?
Вы не видите записей журнала cron в / var / log / syslog?
# grep cron /var/log/syslog*
<grep output here>
Тем не менее, возможно, cron отключился. Убедитесь, что он на самом деле не работает:
# status cron
cron start/running, process 1103
Если вывод этой команды был cron stop/waiting
убедитесь, что ваш /etc/init/cron.conf
файл существует и является правильным (он должен быть). Вот содержимое моей коробки 11.04 (то же самое на 10.04):
# cron - regular background program processing daemon
#
# cron is a standard UNIX program that runs user-specified programs at
# periodic scheduled times
description "regular background program processing daemon"
start on runlevel [2345]
stop on runlevel [!2345]
expect fork
respawn
exec cron
Если все в порядке, попробуйте запустить демон с помощью start cron
.
В противном случае, если ничего не помогает, вы можете попробовать найти ошибки cron в /var/log/*
.
Убедитесь, что каталог /etc/rc.d/init.d
(или /etc/init.d
для ubuntu) имеет crond
в этом.
Если нет, то вот что наш (с открытым исходным кодом) GNU / Linux содержал из коробки. (извините за длинный пост, но это не который длинный):
#! /bin/bash
#
# 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.
# processname: crond
# config: /etc/crontab
# pidfile: /var/run/crond.pid
# Source function library.
. /etc/init.d/functions
. /etc/sysconfig/crond
t=${CRON_VALIDATE_MAILRCPTS:-UNSET}
[ "$t" != "UNSET" ] && export CRON_VALIDATE_MAILRCPTS="$t"
# See how we were called.
prog="crond"
start() {
echo -n $"Starting $prog: "
if [ -e /var/lock/subsys/crond ]; then
if [ -e /var/run/crond.pid ] && [ -e /proc/`cat /var/run/crond.pid` ]; then
echo -n $"cannot start crond: crond is already running.";
failure $"cannot start crond: crond already running.";
echo
return 1
fi
fi
daemon crond $CRONDARGS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/crond;
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
if [ ! -e /var/lock/subsys/crond ]; then
echo -n $"cannot stop crond: crond is not running."
failure $"cannot stop crond: crond is not running."
echo
return 1;
fi
killproc crond
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/crond;
return $RETVAL
}
rhstatus() {
status crond
}
restart() {
stop
start
}
reload() {
echo -n $"Reloading cron daemon configuration: "
killproc crond -HUP
RETVAL=$?
echo
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload)
reload
;;
status)
rhstatus
;;
condrestart)
[ -f /var/lock/subsys/crond ] && restart || :
;;
*)
echo $"Usage: $0 {start|stop|status|reload|restart|condrestart}"
exit 1
esac