Запустити команду при завантаженні як 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), він буде працювати, оскільки є системна служба, яка дозволяє його задіяти, якщо вона існує. Не забудьте поставити рядок exit 0у кінці файлу, щоб запобігти невдалим командам, що спричинить зависання всього процесу завантаження.


Отже, я просто ставлю цей код тут? На даний момент цей файл містить лише exit 0. І якщо я можу попросити під час завантаження, коли rc.localвиконується файлова система, чи готова файлова система, і я можу десь написати журнал для тієї команди, яку я хочу запустити?
lorenzo-s

Це здається, ніби ви намагаєтеся запустити сценарій завантаження (init). Ubuntu використовує upstart. 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. Дуже дякую.
lorenzo-s
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.