У меня есть сервер 14.04 под управлением samba. Я хотел бы установить временный доступ к серверу. Я принимаю СМИ для всего дома, и цель в том, чтобы детские телевизоры стали бесполезными в определенное время. Я поместил следующее в root crontab
:
0 22 * * 0-4 /etc/init.d/samba stop
0 22 * * 0-4 /etc/init.d/smbd stop
0 22 * * 0-4 /etc/init.d/nmbd stop
Акции продолжают активны в течение указанного времени. Что я делаю не так?
Ваши команды не работают потому что /etc/init.d/smbd
и /etc/init.d/nmbd
имейте следующее в запуске:
if init_is_upstart; then
exit 1
fi
Так, как init
в человечности теперь Выскочка (/etc/init.d/
от SysV), необходимо запустить стартстопные скрипты из каталога /etc/init/
. /etc/init.d/
все еще существует для обратной совместимости, потому что много программ все еще используют этот каталог.
Для создания вещей легче для Вас Ubuntu имеет service
команда:
sudo service smbd stop
sudo service nmbd stop
При выполнении как root
:
service smbd stop
service nmbd stop
service
будет сначала искать в /etc/init/
каталог и затем /etc/init.d/
. service
эффективно в другом смысле это, если существует два сценария, имеющие то же имя в тех двух каталогах (как в случае smbd
и nmbd
) Новомодный сценарий (в /etc/init/
) будет иметь приоритет по сценарию SysV (в /etc/init.d/
).
Также Ваш cron
запись может быть сделана более простой:
0 22 * * 0-4 service samba stop && service smbd stop && service nmbd stop
&&
гарантирует, что следующая команда выполняется, только если предыдущий успешен (т.е. код выхода $?=0
).