Работа - это многозадачность и использует виртуальную память и, следовательно, использовать своп. Например, этот вопрос Linux зачем использовать своп, когда в RAM более чем достаточно свободного места в RAM? и этот вопрос OSX Почему я отключил файл свопа в Mac OS X?
Да, большинство Операционные системы создадут своп во время установки по умолчанию.
Да, большинство операционных систем предупреждают вас / Йелл, если вы попытаетесь настроить систему без обмена (обычно настаивая на создании даже крошечного).
См. Debian , Red Hat 7 , Windows (64бит) .
По умолчанию CRON
проходит команды с очень ограниченным Путьм
, который не будет включать в себя команду Service
. Это может быть то, что генерирует ненулевой код возврата, который приводит к отправке электронной почты.
Если не указано иное в файле Crontab
, командам выполняется под путь:
PATH=/usr/bin:/bin
напротив, служба
обычно в usr / sbin
Нет в пути по умолчанию
:
# type service
service is /usr/sbin/service
В
# type service
service is /usr/sbin/service
есть два общих решения:
предоставляют действие Путь
, которое содержит то, что вам нужно рядом с верхней частью вашего Crontab
или ваш скрипт.
Укажите все пути явно.
Первый удобнее. Последнее считается более безопасным.
в системе с системой электронной почты скверлевой электронной почты, Cron
отправляет электронное письмо, содержащее вывод скрипта к пользователю всякий раз, когда появляется ошибка в задании CRON. Не все системы, однако, хорошо настроены электронная почта. CRON
также отправит уведомления об ошибках к регистратеру, но что делает регистратор с ними, зависит от конфигурации регистратора, которая может быть непрозрачной.
В этих случаях попробуйте собрать все сообщения об ошибках самостоятельно, когда команда CRON работает, но изменяя строку Crontab. Используйте что-то вроде:
1 2 * * * /path/to/myscript >>/tmp/myscript.log 2>&1
Это перенаправляет как Stdout, так и STDERR в файл журнала /tmp/myscript.log
. После выполнения команд проверяйте этот файл журнала.
Вы можете перенаправить вывод на / dev / null
, как следующее (я делаю это для моих приложений Thunderbird):
30 05 * * * / usr / bin / thunderbird> / dev / bin / thunderbird> / dev / bin / thunderbird> / dev / bin / thunderbird> / dev / bin / thunderbird> / dev / null 2> & 1
или перенаправить его к файлу с помощью >>
Операции, которые означает добавление:
30 05 * * * / usr / bin / thunderbird >> / tmp / mycron.log 2 > & 1
Примечание:
Вы можете использовать полный путь файла сервисного обслуживания (например, статус /etc/init.d/networkmanager
) вместо Service NetworkManager Status
.
Рекомендация:
Лучше просмотреть ваше программное обеспечение с комбинацией PIDOF
и команд PS -P
, потому что файлы сервисов проведут файл PID под / var / каталог Run /
и если ваша программа была неожиданной была убита (например, сигнал 9) Это файл PID будет существовать! Однако смарт-сервисные файлы проведут эту ситуацию в состояния
функции.
Например:
while :; do
pid=$(pidof SOFTWARE)
watch=$(ps -p ${pid} >/dev/null 2>&1 && echo $?)
[[ ${watch} -ne 0 ]] && service SOFTWARE restart
sleep 3
done