Початок роботи сценарію під час завантаження, а не входу в систему


11

Як я можу отримати певний сценарій для запуску (бажано, не як суперпопулярний), коли машина завантажується, але перед входом у систему. Це може бути останнє, що потрібно запустити на завантаження. Я в основному просто хочу, щоб сценарій працював, навіть якщо жоден користувач не входить.


1
@bruce подивіться на це -> askubuntu.com/questions/9382/…
hhlp

1
Ви можете скористатись початком або кроном або, мабуть, цілою купою інших методів. Одне важливе, що потрібно знати, - це також, наскільки рано він може працювати. Наприклад, чи потрібна встановлення певної файлової системи, чи потрібен X для запуску X, чи потрібен він DBus, чи потрібна мережа чи загалом: чи потрібні ресурси, щоб вони були присутні?
JanC

@JanC: Так, насправді йому потрібно майже все, про що ви просили (крім X), тому я хотів би, щоб це було останньою справою. Насправді немає причин запускати його і раніше.
Малабарба

@hhlp: Класно, дякую. Але як рано запуститься сценарій, якщо я буду використовувати цей метод? Як я вже згадував вище, найкраще, якщо це буде одна з останніх речей (перед входом у систему).
Малабарба

Ну а для входу не потрібна мережа, якщо ви не хочете увійти на термінальний сервер та / або у вас є $ HOME на мережевій долі ... ;-)
січня

Відповіді:


8

Я б рекомендував використовувати cron. Спеціальне значення часу @rebootстворить вашу роботу при кожному перезавантаженні як ваш користувач. Наприклад, запустіть crontab -eі використовуйте:

@reboot /home/yourself/bin/some_script_to_run

Детальніше про спеціальні формати часу див man 5 crontab


Дякую, це здається досить простим. Це не покладається на те, який користувач створює cronjob правильно? Він працює в кінці завантаження незалежно від входу?
Малабарба

Це абсолютно залежить від того, хто створив cronjob - він працюватиме як той користувач. Але це не залежить від їх входу.
Kees Cook

Майте на увазі, що цей сценарій запуску, коли запускається демон крона, настільки можливий, що інша система, яка вам може знадобитися, ще не готова.
PhoneixS

4

Однією з можливостей є використання Upstart. Це дозволяє вам вказати, коли ви хочете запустити свій скрипт у залежності від залежностей, наприклад, "коли файлові системи змонтовані та мережевий інтерфейс eth0запущений". Створіть файл /etc/init/bruce_script.conf( файл потрібно створити як root), що містить щось подібне:

description "Bruce's boot script"
start on filesystem and net-device-up IFACE=eth0
task
exec su -c '/home/bruce/script' bruce

Зверніться до вискочки документації для отримання додаткової інформації, зокрема, init(5)сторінка керівництва для списку того , що ви можете помістити в цьому файлі конфігурація.


Чи є перелік початкових подій, які можна використовувати?
сонце

@ Маркус: не те, що я знаю. Стандартні події мають сторінки вручну в розділі 7 (так dpkg -L upstart |grep /man7/), і ви можете подивитися на події , що випромінюються і використовуються в якості тригерів в існуючих сценаріях в /etc/init.
Жил "ТАК - перестань бути злим"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.