Запуск скрипта при включении компьютера
Как я могу запускать скрипты автоматически при запуске Ubuntu, чтобы мне не приходилось запускать их вручную после запуска?
Если бы кто-то мог показать и WHEN, и WHERE, это было бы здорово. Я говорю это, потому что знаю, что есть как минимум 2 способа запуска скрипта, который будет запускаться до запуска других приложений (например, X11)
В зависимости от того, какие скрипты вам нужно запускать. Для сервисов и тому подобного вы должны использовать upstart . Но для пользовательского сценария они должны запускаться gnome как сценарии сеанса! Загляните в «Система»> «Настройки»> «Запуск приложений».
Кроме того, если вам нужно запустить некоторые скрипты при входе в систему с терминала, вы можете добавить их в файл .bash_login в вашем домашнем каталоге.
Для 14.04 и старше
Простая команда (которая не должна оставаться запущенной) может использовать задание Upstart, например:
Сохраните это в .conf файле /etc/init (если вам нужно, чтобы он запускался от имени root при загрузке системы), или в ~/.config/upstart (если вам нужно, чтобы он работал от имени пользователя при входе в систему).
Учитывая, как работает SO и StackExchange, не могли бы вы привести пример сценария upstart и где он будет размещен? Это сделало бы это намного лучшим ответом. Ваша ссылка говорит, что это не поддерживается, и посмотрите на выскочку поваренной книги, которая является huuuge. У меня не так много идей, с чего начать.
Пожалуйста, обновите этот ответ, чтобы объяснить, что делать в системах с systemd, а не с upstart (Ubuntu 15.04+).
Этот ответ не имеет смысла для меня. Приложения, перечисленные в, не system->pref->startup applications могут быть найдены /etc/init/ ни в, ни в ~/.config/upstart . Так, где определены приложения запуска?
Одним из подходов является добавление задачи @reboot cron :
-
Запуск crontab -e позволит вам редактировать свой хрон.
Добавляем к нему такую строку:
выполнит этот скрипт после загрузки вашего компьютера.
Итак . это не запустится, если я потеряю питание и компьютер снова включится после восстановления питания?
Это круто. Пока что это выглядит лучше, чем rc.local когда система кажется более настроенной к этому моменту (PATH и т. Д.). Странно, что так сложно что-то назвать после запуска системы ..
Как насчет добавления команды в /etc/rc.local ? вам придется использовать доступ sudo, хотя для редактирования этого файла.
Это напрямую отвечает на вопрос: как просто выполнить некоторые сценарии при загрузке вашей системы. upstart выполняет более сложную задачу: запускает процессы демона.
Чтобы выполнить (недолговечную) команду 1 при запуске с помощью systemd , вы можете использовать системный блок типа OneShot . Например, создать, /etc/systemd/system/foo.service содержащий:
Вы можете запустить несколько команд из одного и того же служебного файла, используя несколько ExecStart строк:
Команда всегда должна указываться с полным путем. Если какая-либо команда не выполняется, остальные не запускаются. Перед - тем, как путь указывает systemd игнорировать ненулевой статус выхода (вместо того, чтобы считать его неудачным).
Для пользовательских сессий вы можете ~/.config/systemd вместо этого создать системный модуль . Это должно работать с 16.04 и выше, но не с более ранними выпусками Ubuntu с systemd (так как те все еще использовали Upstart для пользовательских сессий). Сеансами пользователя можно управлять с помощью тех же команд, что и с системными службами, но с --user добавленной опцией:
Бонусные советы:
Если вы хотите запустить скрипт в фоновом режиме, вам нужно добавить амперсанд «&».
Если вы хотите выполнить команду от имени другого пользователя, используйте следующий формат.
Не получается разобраться с вторым вариантом. Хочу при запуске системы активировать команду “net.inet.ip.ttl=65”. Как её активировать при помощи crontab?
Anything in here will be replaced on browsers that support the canvas element
Уязвимость Log4j является одной из самых смертоносных проблем безопасности в современных системах. Логирование является ключевой функцией в современных приложениях, и библиотека логирования Log4j является лидером в этой области. Эта библиотека используется в большинстве приложений, сервисов и систем. Следовательно, все те приложения, в которых используется Log4j, подвержены этой уязвимости Log4j, обнаруженной в прошлом году. В связи […]
Самая распространенная команда Docker также является универсальной командой. Узнайте о нескольких вариантах использования команды docker ps. Одной из первых команд Docker, которую вы используете, является команда docker ps. Она показывает запущенные контейнеры: docker ps На самом деле, выполнив эту команду, вы получите список запущенных контейнеров и их уникальный ID контейнера, имя образа, команду, которую он […]
Passbolt – это менеджер паролей с открытым исходным кодом, который позволяет безопасно хранить и передавать учетные данные для входа на сайт, пароль роутера, пароль Wi-Fi и т.д. В этом руководстве будет показано, как установить Passbolt Community Edition (CE) на Ubuntu 22.04 с сервером базы данных PostgreSQL, который обычно быстрее, чем сервер базы данных MariaDB/MySQL. Особенности […]
socialscan – это инструмент командной строки для проверки использования электронной почты и имен пользователей социальных сетей на онлайн-платформах. Если задан адрес электронной почты или имя пользователя, socialscan возвращает, доступен ли он, занят или недействителен на онлайн-платформах. Другие подобные инструменты проверяют доступность имени пользователя, запрашивая страницу профиля рассматриваемого имени пользователя и на основе такой информации, как […]
Как я могу автоматически запустить скрипт при входе в Windows?
Я хотел бы запускать что-то вроде этого всякий раз, когда я захожу в свой компьютер:
Бонусом будет возможность запускать один и тот же скрипт всякий раз, когда я разблокирую экранную заставку.
Ответ очень высокооктановый - используя одну строчку, я предлагаю что-то более скромное (но эффективное) ниже . ;-)
Вы можете создать запланированное задание, которое будет запускаться, когда ваш компьютер разблокирован:
- Пуск> Администрирование> Планировщик задач
- левая панель: выберите библиотеку планировщика заданий
- правая панель: нажмите «Создать задачу» (ПРИМЕЧАНИЕ: это единственный способ получить правильный триггер)
- в диалоговом окне Создать задачу:
- Вкладка «Общие» - укажите название вашей задачи
- Вкладка «Триггеры» - нажмите «Создать» и выберите «Разблокировать на рабочей станции».
- Вкладка «Действие» - нажмите «Создать» и нажмите «Обзор»…, чтобы найти сценарий
- Вкладка «Условия» - снимите флажок Запускать задание, только если компьютер подключен к сети переменного тока
Также я подправил путь в скрипте для чтения
Если у вас уже есть скрипт:
Чтобы назначить сценарий входа пользователю или группе
- Откройте Управление компьютером.
- В дереве консоли щелкните Пользователи.
Где? Системные инструменты / Локальные пользователи и группы / Пользователи
- Дважды щелкните пользователя, которому вы хотите назначить сценарий входа.
- Нажмите вкладку Профиль.
- В поле «Сценарий входа» введите путь и имя сценария входа, который вы хотите назначить этому пользователю, и нажмите кнопку «ОК».
Создание сценариев входа
Вы можете использовать сценарии входа в систему, чтобы назначать задачи, которые будут выполняться, когда пользователь входит в систему на определенном компьютере. Сценарии могут выполнять команды операционной системы, устанавливать системные переменные среды и вызывать другие сценарии или исполняемые программы. Семейство Windows Server 2003 поддерживает две среды сценариев: командный процессор запускает файлы, содержащие команды пакетного языка, а Windows Script Host (WSH) запускает файлы, содержащие команды Microsoft Visual Basic Scripting Edition (VBScript) или Jscript. Вы можете использовать текстовый редактор для создания сценариев входа. Некоторые задачи, обычно выполняемые сценариями входа в систему:
- Сопоставление сетевых дисков.
- Установка и настройка принтера по умолчанию для пользователя.
- Сбор информации о компьютерной системе.
- Обновление вирусных сигнатур.
- Обновление программного обеспечения.
- В следующем примере сценарий входа в систему содержит команды VBScript, которые используют Active Directory
- Сервисные интерфейсы (ADSI) для выполнения трех общих задач, основанных на членстве пользователя в группе:
Он сопоставляет диск H: с домашним каталогом пользователя, вызывая метод MapNetworkDrive объекта сети WSH в сочетании со свойством UserName объекта сети WSH. Он использует объект ADSI IADsADSystemInfo для получения отличительного имени текущего пользователя, которое, в свою очередь, используется для подключения к соответствующему объекту пользователя в Active Directory. Как только соединение установлено, список групп, членом которых является пользователь, извлекается с использованием атрибута memberOf пользователя. Многозначный список имен групп объединяется в одну строку с помощью функции Join VBScript, чтобы упростить поиск имен целевых групп.
Если текущий пользователь является членом одной из трех групп, определенных в верхней части сценария, сценарий сопоставляет диск G: пользователя с общим диском группы и устанавливает принтер по умолчанию для пользователя в качестве принтера группы. Чтобы создать пример сценария входа
В предыдущих версиях Windows я использовал приведенную ниже технику для запуска командного файла при запуске Windows.
- Создайте ярлык для командного файла.
- После создания ярлыка щелкните правой кнопкой мыши файл ярлыка и выберите «Вырезать».
- Нажмите Пуск, затем Программы или Все программы. Найдите папку «Автозагрузка», щелкните ее правой кнопкой мыши и выберите «Открыть».
- Открыв папку «Автозагрузка», нажмите «Редактировать» в строке меню, а затем «Вставить», чтобы вставить файл ярлыка в папку «Автозагрузка». Если вы не видите строку меню, нажмите клавишу Alt, чтобы сделать ее видимой. Все ярлыки в папке «Автозагрузка» будут запускаться автоматически при каждом входе пользователя в Windows.
Мне не удалось найти, как сделать что-то подобное в Windows 10.
Папка автозагрузки все еще там и работает как обычно.
Чтобы получить к нему доступ, нажмите Windows + R, затем введите shell:startup .
Вы должны быть в состоянии сделать то, что вы ранее делали в Windows 7 оттуда.
Проблема в shell:startup том, что это зависит от пользователя (когда другой пользователь входит в систему на вашем компьютере, программа не запускается), в случае, если вы хотите запустить программу при запуске компьютера, независимо от пользователя, вы можете добавить ярлык в каталоге C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup .
@phil, вам следует открыть новый вопрос, но чтобы ответить на ваш вопрос: создайте ярлык для вашего файла exe / bat (щелкните правой кнопкой мыши> создать ярлык для), затем щелкните правой кнопкой мыши ярлык> Свойства> Дополнительно> Запуск от имени администратора.
Вы можете использовать запланированные задачи и настроить его запуск при запуске.
Перейдите в Управление → Запланированные задачи → Создать основную задачу .
Находясь в диалоговом окне, установите имя, нажмите Next и выберите при запуске, Next снова и выберите программу, которую вы хотите запустить, и затем, чтобы закончить. Выполнено!
У меня есть материнская плата MSI, которая плохо играет с моей любимой клавиатурой Gateway Anykey. Num Lock не выключается при загрузке.
Я добавил в shell:startup папку утилиту «NumLock Off» . Нет помощи. Я добавил его в запланированные задачи, и это сработало. Кстати, я не мог запланировать ярлык для утилиты. Я мог только запланировать пакетный файл с файлом numlock.exe и параметром «off» в командной строке.
Хотелось бы чтоб при включении компьютера, чтоб запускалась программка при включении в операционной системе Debian 9. Я прочёл статью о том как в линуксе можно прописать запуск программы при запуске операционной системы.
Прописывать ядро я сразу отказался да и уверен там не так всё легко как написано в статье.
решил через bash :
Самый простой автозапуск скрипта linux - это запуск с помощью bashrc. Ваш скрипт или команда будет выполняться каждый раз, когда запускается новая сессия терминала. Для этого добавьте адрес нужного скрипта в файл ~/.bashrc:
Здесь вы можете запускать на выполнение любые скрипты или команды. Часто такой подход используется для создания псевдонимов команд, объявления новых переменных и собственных функций.
Но как только я запустил этот файл едиственное что я мог это только его читать. Да и не совсем понятно куда вписывать
Потом решил попробовать другой вариант
в файле /etc/rc.local прописал :
в файл script_run сделан исполняемым. он имеет одну строку ./initialization и запускает скомпилированную программу.
Увы также не чего не вышло (((
Попробовал предложение @Total Pusher -а
Увы не вышло хотя и проверял как скрипт (по отдельности также не забыл сделать его исполняемым), также и программу прогнал через chmod +x (когда увидел что не запустилось).
Поправил надо было в файл nano ~/.bashrc перед командой вызова скрипта надо было перейти в директорию cd /kononov/initialization1 в которой всё будет происходить.
НО увы программа запускается только кода включается bash .
А хотелось бы чтоб программа включалась после подачи питания и стартовой инициализации аппарата.
Вот последняя итерация, прочитал эту статью , понял что надо прописать именно в директории /ect/rc3.d но я не понял в каком именно файле, и бо их там шесть ( S01cron, S01dbus, S01network-manager, S01rsync, S01rsyslog, S01ssh ), а какой из них запускается последний непонятно.
прочитал я этот вопрос (так сказать мой вопрос его дубликат) и понял что модераторы снова ошиблись.
всё делал по ответу
Делаем файл исполняемым: chmod +x wentilation.
И вот тут самый прикол, в дебиан 9 нету chkconfig , Окей я говорю сейчас установим ввожу sudo apt-get install chkconfig и оказывается его нету даже в репозитории. Только потом узнаю в дебиан 9 менеджер демонов это systemctl и дебиан 9 совершенно не поддерживает chkconfig
Метод 1: Как запустить скрипт или команду при перезагрузке или запуске системы с помощью файла /etc/rc.d/rc.local
Файл «/etc/rc.local» традиционно выполняется после того, как все обычные службы были запущены в конце процесса перехода в многопользовательский уровень выполнения.
Этот метод также работает в системе systemd.
Вам нужно добавить местоположение вашего скрипта в файл «/etc/rc.d/rc.local» для запуска при старте системы.
Убедитесь, что файл имеет права на запуск.
Наконец добавьте скрипт в конец файла.
Способ 2: Как выполнить команду или скрипт при перезагрузке или запуске системы с помощью crontab
cron автоматически выполняет запланированные задания в бэкэнде в определенное время.
@reboot – это специальная строка, которая позволяет пользователю запускать любую команду или скрипт при запуске ( во время загрузки).
В этом примере запускается файл «/opt/scripts/run-script-on-boot.sh» при перезагрузке системы.
Мы будем использовать тот же скрипт, что и выше.
Для этого просто добавьте следующую запись в файл crontab.
Синтаксис оболочки
Обратите внимание, что, в отличие от Upstart, systemd не запускает Exec* команды через оболочку. Он выполняет некоторое ограниченное расширение переменных и несколько команд (разделенных ; ), но это все, что касается оболочечного синтаксиса. Для чего-то более сложного, скажем, перенаправление или каналы, оберните вашу команду в sh -c '. ' или bash -c '. ' .
1 В отличие от долгоживущих демонов.
Можно ли установить приоритет на работу? или указать, что это зависит от другого сервиса, который будет запущен первым?
@ r3wt да, есть разные способы сделать это. WantedBy Здесь используется, например, позволяет начать , когда multi-user.target достигается. Вы можете использовать Before , After , Requires и т.д. См man systemd.unit
Пожалуйста. - Между прочим, это RemainAfterExit зависит от того, какую службу вы запускаете и от какого поведения. Например, /bin/df -h бы s> должен был иметь RemainAfterExit=no .
@PerlDuck Ничто не присуще df этим потребностям RemainAfterExit=no . Если вы не хотите многократно выполнять команду при каждом запуске systemctl start foo .
Существуют разные способы автоматического запуска команд:
Система upstart выполнит все сценарии, из которых она найдет конфигурацию в каталоге /etc/init . Эти сценарии будут запускаться во время запуска системы (или в ответ на определенные события, например, запрос на выключение), и поэтому являются местом для запуска команд, которые не взаимодействуют с пользователем; все серверы запускаются с использованием этого механизма.
Сценарий оболочки, указанный .gnomerc в вашем домашнем каталоге, автоматически создается при каждом входе в сеанс GNOME. Вы можете поместить произвольные команды там; Переменные окружения, которые вы установили в этом скрипте, будут видны любой программе, запущенной в вашем сеансе.
Обратите внимание, что сессия не начинается, пока .gnomerc скрипт не завершится; следовательно, если вы хотите автоматически запустить какую-то долго работающую программу, вам нужно добавить & ее в вызов программы, чтобы отсоединить ее от работающей оболочки.
Пункт меню « Система» -> «Настройки» -> «Запуск приложений» позволяет определить, какие приложения следует запускать при запуске графического сеанса (Ubuntu предопределяет довольно много), а также добавлять или удалять их по своему вкусу. Это имеет почти то же самое назначение и область действия .gnomerc сценария, за исключением того, что вам не нужно знать sh синтаксис (но вы также не можете использовать какую-либо sh программную конструкцию).
3) «Это имеет почти то же самое назначение и область действия сценария .gnomerc», за исключением того, что, .gnomerc очевидно, запускается до загрузки Unity и, Startup Applications очевидно, запускается после загрузки Unity. Мне пришлось запустить программу, которая находится в строке меню Unity, и это имело огромное значение в этом случае!
sudo update-rc.d myscript.sh defaults где /etc/init.d/myscript.sh - ваш скрипт, также запускает его при запуске.
- Это местоположение содержит список запуска приложений.
- .desktop Здесь можно поместить файл, который будет выполнен при запуске.
Пример примера для .desktop файла:
Поместить следующий .desktop файл в $HOME/.config/autostart и дано chmod +x :
Здесь "" заменяется путь к вашему script.sh
(обычно рекомендуется /usr/local/bin так, что может быть выполнен непосредственно командой скажем, myscript заменен на "" ).
Пример примера script.sh :
Результат: .desktop файл будет запущен из $HOME/.config/autostart которого выполнить скрипт Exec=
Следовательно, вы можете запустить желаемый сценарий оболочки при запуске!
Мануал
Хорошо известные сервисы на Linux могут быть добавлены на старт при загрузке системы без каких-либо проблем.
Иногда вам нужно добавить собственный скрипт или команду или службу при загрузке, и как это сделать?
Вы можете сделать это, используя следующие три метода.
В этом руководстве мы покажем вам, как использовать эти методы на примерах.
Метод 3: Как запустить команду или скрипт при перезагрузке или запуске системы с помощью системного сервисного юнита
Этот метод работает только в системах systemd.
Этот метод очень прост.
Мы собираемся использовать тот же скрипт, показанный выше, чтобы продемонстрировать этот способ.
Для этого вам нужно создать скрипт запуска systemd и поместить его в каталог «/etc/systemd/system/».
Это наш пример скрипта запуска юнита systemd.
Как только вы поместите скрипт в расположение systemd, выполните следующую команду, чтобы обновить файлы конфигурации systemd и включить службу.
Читайте также: