На этот вопрос уже есть ответ здесь:
Я хочу запустить команду при запуске на моем сервере Ubuntu. Кто-нибудь знает как это сделать? /Etc/rc.local запускается от имени суперпользователя? Любая помощь будет оценена по достоинству. Спасибо!
Есть несколько мест, где вы можете сделать это:
/etc/init.d (и затем создание ссылки на /etc/rc[runlevel].d - обычно 2) работает довольно хорошо - так там вы можете указать биты запуска и остановки.
Это немного по-старому (хотя очень легко). Вы также можете сделать что-то с выскочкой. Посмотрите эту страницу (посмотрите раздел «Написание работ»).
Большая ошибка - путь обычно не совсем тот, который вы ожидаете. Поэтому я бы посоветовал запустить что-то вроде «echo $ PATH> / init_path» из любого сценария, чтобы сначала выяснить, не возникла ли у вас проблема (проверьте / init_path и посмотрите, что там .. совершенно безопасно удалить этот файл). Хотя в вашем скрипте легко указывать пути, стоит установить переменную PATH соответствующим образом, так как все, что запускается из любого скрипта, также может нуждаться в PATH.
/etc/rc.local будет работать от имени пользователя root.
Большая часть процесса инициализации запускается от имени пользователя root или запускается таким образом.