Дополнительно
Как запускать скрипты при запуске?
Как я могу запускать скрипты автоматически при запуске Ubuntu, чтобы мне не приходилось запускать их вручную после запуска?
529
9
Один из подходов заключается в добавлении задачи @reboot cron:
Запуск
crontab -e
позволит вам отредактировать ваш cron.Добавьте в него следующую строку:
выполнит этот скрипт после загрузки компьютера.
В зависимости от того, какие скрипты нужно запустить.. за услуги и как вы должны использовать выскочка. Но для скрипта пользователей они должны быть запущены как сессия скрипты гном! Посмотри в разделе Система и GT; предпочтения и GT; запуск приложений.
На стороне записки, Если вам нужны скрипты для запуска на вход терминала вы можете добавить их на .bash_login все файл в вашем домашнем каталоге.
Для 14.04 и старше
Нужен простой команды (тот, который не'т продолжать бег) можно использовать выскочка работы, как:
Сохранить это в
.файл Conf
в/etc/инит
(если вам это нужно, чтобы запустить как root при загрузке системы), или в `~/.конфиг/выскочка (если вам это нужно для запуска в качестве пользователя, когда вы входите в игру).Вы можете добавить команды из/etc/rc автомобиль.местные`:
Этот выполняет команды как root.
Для выполнения команд от имени определенного пользователя, используйте команду sudo -я -у
(
-i, чтобы запустить оболочку). Например, чтобы установить постоянное SSH туннель, где окружения myhost, которая является definde в
johndoe в в~/.файл SSH/config файл
:Обратите внимание, что если в/etc/файл RC.местные/
была пуста, она не может существовать, так что вы должны добавить [притон линия](https://en.wikipedia.org/wiki/Shebang_%28Unix%29) на вершине (например,
#! /бин/Баш`), и убедитесь, что файл является исполняемым:Для 15.04 и позже:
Чтобы запустить (короткоживущих)<суп>1</с SUP> команда на запуск, используя
systemd в
, Вы можете использовать блок инициализации по умолчанию для типаодноразовые
. Например, создать файл/etc/systemd в/системы/ФОО.услуг, содержащий:Затем выполните:
По сути, это просто преобразования типичный выскочка работа к systemd в один (см. systemd для пользователей выскочка).
Можно выполнять несколько команд из одной файловой службы, через несколько ExecStart линий:
Команда всегда должна быть дана с указанием полного пути. Если одна из команд не удается, остальные же'т бежать.
-
Перед путь говорит нет причин продолжать игнорировать ненулевой статус выхода (не считая ее провал).Актуальны:
человек 5 systemd не.обслуживание
Для сеансов пользователей, вы можете создать блок systemd в в
~/.конфиг/systemd в Вместо. Это должно работать с 16.04 года, но не ранее выпусков Ubuntu с systemd (поскольку эти выскочки до сих пор используется для сеансов пользователей). Сессии единицы пользователей могут управляться с теми же самыми командами как с системными службами, но с опцией
--пользователь добавил:Синтаксис# раковина
Обратите внимание, что в отличие от выскочки, systemd в не'т выполнять команды
метод exec* через оболочку. Он выполняет некоторые ограниченные вычисления переменной и нескольких команд (разделенных символом
;) сама по себе, но, что'ы об этом так далеко, как Shell-подобный синтаксис идет. На что-то более сложное, скажем перенаправление или трубы, обернуть команду в
Ш-с '...'или Баш-с '...'
.<суп>1</хлебать>в отличие от долгоживущих демонов.
Существуют различные способы для автоматического запуска команд:
/и т. д./init
. Эти сценарии будут запущены при запуске системы (или в ответ на определенные события, например, запрос на выключение) и место для выполнения команд, которые не взаимодействуют с пользователем; все серверы начали использовать этот механизм.Вы можете найти читаемое введение в тему: http://upstart.ubuntu.com/getting-started.html страницы man
человек 5 init
и `человек 8 инициализации дадим вам полную информацию.Отметим, что сессия не начнется до тех пор, пока
.сценарий gnomerc
завершена; поэтому, если вы хотите автозапуск некоторые долгоиграющие программы, нужно добавить&
для вызова программы, для того, чтобы отсоединить его от оболочки..сценарий gnomerc
, кроме вас, Дон'т должны знатьш
синтаксис (но ни вы можете использовать любые " ш " программная конструкция).Образец пример
.файл рабочий стол
:Поставив следующий
.файл рабочий стол
в$дома/.файл config/автостарт и дал команду chmod +х
:Здесь в
"</путь/к/скрипт>"
в заменяется на путь к вашемуscript.sh
<БР>(обычно рекомендуют/usr/местные/Бен
так что может быть выполнена путем непосредственного командования говорятуниверсальный
заменить" и</путь/к/скрипт>"
в).Образец пример script.sh`:
Результат:
.файл рабочий стол
будет запущен с$дома/.конфиг/автостарт, которые выполняют сценарий
метод exec=`Таким образом, Вы можете запустить нужный скрипт при запуске!
Для простых вещей вы можете добавить команду в System->Preferences->Sessions, указывающую на расположение вашего скрипта.
Также вы можете добавить его в /etc/init.d/rc.local или сделать задание upstart, если это более низкий уровень.
Посмотрите на https://help.ubuntu.com/community/UbuntuBootupHowto для получения дополнительной информации.
ответ #
хрон
реализованы различные сверху голосовалЭтот ответ до сих пор использует
хрон
, но использует другой метод, чем топ-проголосовали ответ. Это работает начиная с Ubuntu 16.04, но, вероятно, гораздо раньше. Это's просто, что я начал использоватьхрон
для выполнения задания, когда компьютер загружается с 16.04.При запуске делает
хрон
?В комментариях кто-то спрашивал "Когда же они бегут?&и". Вы можете сказать в syslog / journalctl:
Одна вещь, чтобы отметить
хрон
может вам по электронной почте статусе выполнения заданий и@перезагрузке выполнения заданий так рано диспетчер сети и электронной почты выиграл'т быть запущена, если вы положили на
сон` команду в скрипт(ы).Куда положить свои скрипты
Положить скрипты в директорию
/и т. д./cron.д
:Что делает скрипт выглядит?
Вот пару скриптов у меня есть установки для запуска каждой загрузке:
Для этого следует использовать upstart. Upstart используется для процессов Ubuntu, которые запускаются автоматически. Это усовершенствованное решение, подобное старым скриптам System-V init.d. Он также позволяет вам вводить предварительные условия для запуска вашего скрипта (например, нужна ли вам работающая сеть? и т.д.).