Запустите команду при загрузке как root

9

Мне нужно запустить bash-скрипт во время загрузки как суперпользователь в Xubuntu. Я не знаю с чего начать. Я должен сделать что-то описанное в руководстве по Arch Linux. Это руководство говорит точно:

Добавьте следующее в конец файла: /etc/rc.sysinit

# Do my action
/etc/rc.d/do_my_action

/bin/dmesg >| /var/log/dmesg.log

Но у меня нет /etc/rc.sysinitи /etc/rc.d/в Xubuntu. Я уверен, что есть эквивалентные, верно?

Лоренсо-ы
источник

Ответы:

9

Файл вы хотите /etc/rc.local. Этот скрипт будет запущен рядом или в конце процесса загрузки. Таким образом, все должно быть к этому времени.

Однако, как отметил @ bodhi.zazen, Upstart может быть лучшим вариантом для вас. Проверьте это .

Примечание 1 : в 15.04 и позже Ubuntu использует, systemdа не Upstart. Поэтому, если вы хотите использовать сервисный подход, посмотрите этот ответ здесь @muru

Примечание 2 : в 16.10 /etc/rc.localпо умолчанию его нет, но если вы создадите его и сделаете его исполняемым ( sudo chmod u+x /etc/rc.local), он будет работать, потому что есть служба systemd, которая его вытягивает, если она существует. Не забудьте поставить строку exit 0в конце файла, чтобы предотвратить сбой любых команд, вызывающих зависание всего процесса загрузки.

Скотт Северанс
источник
Итак, я просто разместить этот код здесь? Пока этот файл содержит только exit 0. И если я могу спросить, при загрузке, когда rc.localвыполняется, готова ли файловая система, чтобы я мог также написать журнал где-нибудь для той команды, которую я хочу выполнить?
Лоренцо-с
Звучит так, как будто вы пытаетесь запустить загрузочный (init) скрипт. Ubuntu использует выскочку. rc.local будет запускать команду или серию команд при загрузке и может или не может быть вашим лучшим вариантом. Что вы пытаетесь сделать именно?
Пантера
@ lorenzo-s: см. мое редактирование.
Скотт Северанс
Вы также можете найти этот ответ полезным: askubuntu.com/a/20347/3940
Таккат
1
Хорошо, я решил перейти my_scriptот /usr/local/binк /usr/bin. Я также могу сохранить вход с /var/logпомощью my_script &>> /var/log/my_script. Большое спасибо.
Лоренцо-с