1

Я установил задания cron, которые останавливают службы в 2:00, а затем перезапускают их в 8:00. Тем не менее, мои предприимчивые пользователи (моя семья; защитить коробку не представляется возможным) определили, что если они перезагрузят коробку, сервисы вернутся в оперативный режим как часть процесса загрузки по умолчанию.

Лучшее решение, которое мне удалось найти, - это изменить сценарии запуска / остановки, чтобы проверить время как условие, или сделать так, чтобы задания cron поместили файл флага на диск, который запускаются заданиями запуска служб перед разрешением запуска. (Второе разъединяет расписание, поэтому я ввожу его только в одном месте и позволяет легко его переопределить.)

Это лучший технический способ решения проблемы? Есть ли другой способ связать выключение через cron, с которым я незнаком?

1 ответ1

1

Хорошо, сервис, которым я хотел управлять, был преобразован в Upstart. Согласно Upstart Cookbook, временное отключение службы, чтобы она не запускалась при следующей загрузке, выполняется с помощью следующего:

# echo "manual" >> /etc/init/myjob.override

Поэтому я создал следующий скрипт запуска и завершения, который будет вызываться из cron:

PMSStop:

#!/bin/bash
OverrideFile="/etc/init/plexmediaserver.override"

# Create the override file if it doesn't already exist.
if [ ! -f $OverrideFile ]
then
    echo Creating flag file $OverrideFile.
    echo "manual" >> $OverrideFile
else
    echo Flag file $OverrideFile exists.
fi

# Stop the plexmediaserver service.
/sbin/stop plexmediaserver

PMSStart:

#!/bin/bash
OverrideFile="/etc/init/plexmediaserver.override"

# Remove the override file if exists.
if [ -f $OverrideFile ]
then
    rm $OverrideFile
fi

# Start the plexmediaserver service.
/sbin/start plexmediaserver

Затем я изменил задания cron, чтобы использовать только что созданные пакетные файлы, и, похоже, он работает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .