Я хотел запустить команду на нашем linux после перезагрузки, я увидел, что это можно сделать с помощью crontab. Я хотел запустить эту команду
sudo ifdown eth0 && sudo ifup -v eth0
на crontab я могу просто сделать:
@reboot sudo ifdown eth0 && sudo ifup -v eth0
или мне нужно сохранить это в сценарии?
Спасибо
Ответы:
Несколько заметок здесь, прежде чем это будет работать:
sudo
в работе cron. Вместо этого отредактируйтеroot
crontab вместо своего, например,sudo crontab -e
и затем введите команды безsudo
.cron
, и, вероятно, будет лучше поместить/etc/rc.local
передexit 0
строкой.@reboot
также должны работать после жесткого выключения или сбоя, но есть разные реализации cron, поэтому YMMV. Я видел комментарии в разных местах, утверждающие оба.РЕДАКТИРОВАТЬ (2016/02/17): Убрано неправильное пятно на абсолютных путях; kudos @muru
EDIT (2016/10/17): добавлено примечание о выключении
EDIT (2017/09/11): исправлено примечание о выключении. Не совсем уверен в этом.
источник
etc/rc.local
без sudo. так что тогда будет просто ifdown eth0 && sudo ifup -v eth0 выход 0cron
используетPATH
данные/etc/environment
, которые есть/sbin
./etc/pam.d/cron
загружаетсяpam_env
, поэтому/etc/environment
должно быть прочитано и установлено значение по умолчаниюPATH
. Этот ответ был опубликован незадолго до выхода 12.04.Вы можете использовать crontab для этого, но если вы используете
sudo
, то вам нужноNOPASSWD
правилоsudoers
для этого. (См. Как запустить задание cron с помощью команды sudo .)Было бы проще отредактировать
/etc/rc.local
и добавить эти команды передexit 0
строкой.источник