Я понимаю, что это не одобряют. Многие посоветуют, что они не рекомендуют перезапускать сервер из cron, потому что он не отслеживается. В моем случае я хотел бы это сделать, причина в том, что сервер используется только для одной задачи в среде сервера узлов. На сервере заканчивается память, и мне посоветовали просто перезапустить весь сервер. Я согласен с этим.
В настоящее время в моем файле cron есть следующее. (Я получил это из другого вопроса о стеке).
0 */4 * * * /usr/bin/reboot
Однако это не работает. Когда я вручную перехожу в этот каталог / usr / bin /, набираю "reboot
"это работает. Но выполнение этого / usr / bin / reboot из chron не перезапускает сервер.
Когда я делаю ls /usr/bin/reboot
возврат /usr/bin/reboot
Когда я делаю which reboot
возврат /sbin/reboot
Как перезапустить сервер на CentOS 6 с помощью cron?
Как упомянул комментатор, вы вызываете не ту программу. Бинарный файл перезагрузки находится в /sbin/reboot
, а не на /usr/bin/reboot
. Последний является символической ссылкой на consolehelper
, который является оболочкой, позволяющей пользователям без полномочий root запускать соответствующую программу в /sbin
при определенных обстоятельствах. Вы можете увидеть его справочную страницу, если вам действительно интересно, как он работает, но поскольку CentOS 6 скоро перестанет работать, а текущие версии не используют его, об этом, вероятно, не стоит беспокоиться. Просто укажите правильный путь и переходите к более важным вещам, например, к устранению утечки памяти.