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


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.