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