Запуск программ автоматически — Windows Client
- Статья
- Чтение занимает 2 мин
Оцените свои впечатления
Да Нет
Хотите оставить дополнительный отзыв?
Отзывы будут отправляться в корпорацию Майкрософт. Нажав кнопку «Отправить», вы разрешаете использовать свой отзыв для улучшения продуктов и служб Майкрософт. Политика конфиденциальности.
Отправить
Спасибо!
В этой статье
В этой статье описывается использование групповых политик в Windows 2000 г. для настройки программы для автоматического запуска при вписке пользователя.
Применяется к: Windows 2000 г.
Исходный номер КБ: 240791
Сводка
Вы можете применить политику к отдельному пользователю или компьютеру, а также использовать любую допустимую программу (настраиваемую, сторонную или Windows 2000 программ, таких как Microsoft Internet Explorer). Например, используйте соответствующий метод для настройки Notepad.exe, когда пользователь впишется в:
Настройка Блокнот, когда любой пользователь войт на определенный компьютер:
Изменить следующую групповую политику:
Конфигурация компьютера\Административные шаблоны\System\Run these programs at User LogonВведите полное имя пути программы. В этом примере введите следующее имя пути:
c:\%windir%\system32\notepad.exe
Настройка Блокнот при входе определенного пользователя (независимо от компьютера, который он использует):
Изменить следующую групповую политику:
Конфигурация пользователя\Административные шаблоны\System\Run these programs at User LogonВведите полное имя пути программы.
Примечание
Если программа не работает, убедитесь, что путь правильный. Программа не запустится (и сообщение об ошибке не отображается), если путь не найден.
Как настроить автозапуск приложений и сервисов в Ubuntu
Убунту — красивая, удобная, а главное, полностью бесплатная операционная система, построенная на ядре Linux. Поэтому всё больше обладателей компьютеров становятся её пользователями. Если в их число попали и вы, то вам стоит, нет, не научиться — учиться там нечему — всего лишь понять и освоить основы управления. Например, как настроить автозапуск приложений и сервисов в Ubuntu.
Автоматический старт
Автозагрузка в Ubuntu — такой же процесс, как и на других ОС. Вы, должно быть, помните и представляете, как на Windows при включении ПК сразу же запускались Skype, uTorrent и ещё ряд программ. На Убунту есть несколько программ, которые аналогичным образом включаются вместе с компьютером. Их список можно изменить, как вам удобно: удалить лишние или добавить ещё несколько.
Добавление процессов
Добавить новый сервис, утилиту или команду в автозагрузку Ubuntu совсем не сложно. Делается это при помощи меню.
- Открываем меню «Система», пункт «Параметры».
- Выбираем программу «Запускаемые приложения».
- В появившемся окне видим все утилиты, которые запускаются при старте системы.
- Жмём кнопку «Добавить» для добавления новой.
Жмём кнопку «Добавить» для добавления новой программы
- Появляется заполняемое поле. Строки с названием и комментарием заполняем, используя свою фантазию. А вот «Команда» должна содержать набор символов для запуска процесса. Если нам они известны, просто вписываем, а если нет — шагаем дальше.
Заполняемое поле
- Ищем нужное приложение через редактор главного меню.
- Жмём кнопку свойства и копируем команду оттуда.
Нажимаем Свойства
- Вставляем её в нужное для автозапуска поле.
Указываем значение команды
Добавлять таким образом можно не только утилиты, но и просто сервисы. Только в верхней строчке нужно выбрать подходящий тип, если он есть, а также вписать нужную команду. Главное — знать её.
Отсрочка
В Убунту есть также прекрасная возможность делать отсрочку включения — прямо как на современных духовых шкафах или мультиварках. Она делается с помощью введения небольшого дополнения к тексту команды. Которое выглядит следующим образом: «sleep 20;» (без кавычек). Вместо 20 можно вписать любое число, которое будет означать количество секунд, которые процесс «спит» перед тем, как запуститься. Таким образом вы можете дать системе время полностью загрузиться, после чего уже начнут включаться определённые сервисы или программы.
Удаление
Если вы уже пробовали добавлять программы в автоматический старт, то понимаете, что и удалить их оттуда будет очень легко.
- Снова заходим в утилиту управления автозагрузкой.
- Находим те процессы, которые нам не нужны.
- Выделяем их, жмём «Удалить».
Теперь лишние процессы будут убраны из автозапуска Ubuntu. Лучше иметь там только самое необходимое.
Стоит понимать, что если добавить много приложений в автозагрузку Ubuntu, ОС будет загружаться гораздо медленнее. Поэтому лучше не перебарщивайте и правильно регулируйте настройки автоматического запуска. Функция действительно очень удобная и вместе с отсрочкой запуска даёт хороший инструмент для автоматического регулирования действий системы.
Как сделать автозапуск программы в linux. Тонкая настройка автозагрузки в Ubuntu Server
После запуска компьютера, как правило, нам приходится запускать некоторые программы. которыми мы пользуемся чаще всего. Также после запуска системы нам может понадобиться выполнить какие-либо специфичные действия, например, создать нужные файлы или установить некоторые параметры. Очень неудобно делать это вручную. Для решения таких задач существует автозагрузка.
В этой статье мы рассмотрим как работает автозагрузка Linux, как добавить программы автозагрузки, куда их будет более правильно добавить, а также какие виды автозагрузки бывают в этой операционной системы.
Как работает автозагрузка?
Чтобы понять как работает автозагрузка, сначала нужно вспомнить, что происходит во время процесса загрузки Linux . Как только ядро завершит свою инициализацию и будет готово к дальнейшей работе, оно передаст управление системе инициализации. Система инициализации — это основной процесс, именно он запускает все другие процессы в системе.
Есть процессы, которые система инициализации, например, systemd, запускает по умолчанию, но также вы можете настроить чтобы она запускала нужные вам процессы. Также многими дочерними процессами выполняются файлы скриптов или имеется та или иная возможность запускать необходимые вам программы. Такая возможность есть и у большинства окружений рабочего стола.
Рассмотрим основные уровни автозагрузки которые вы можете использовать:
— вы можете указать любую программу, которая будет запускаться после старта ядра вместо системы инициализации; — запуск основных системных сервисов, дополнительных сервисов, а также ваших скриптов на этапе инициализации системы; — устаревший метод загрузки скриптов, выполняется перед запуском графического окружения; — вы можете выполнять свои скрипты или команды после запуска менеджера входа, но перед запуском окружения; — запуск нужных программ или скрпитов сразу после старта X сервера; — большинство окружений поддерживают автозагрузку программ, там даже можно настроить отложенный запуск и другие параметры; — самый последний вариант — это автозагрузка на уровне отдельной командной оболочки, вы можете выполнять нужные команды автоматически, как только будет запущен терминал.Автозагрузка на уровне ядра
$ sudo vi /boot/grub2/grub.cfg
linux /vmlinuz-4.8.0-22-generic root=/dev/mapper/systems-ubuntu ro quiet init=/bin/bash
Но, обычно, удобнее изменить это значение временно, в меню Grub. Читайте подробнее об этом в статье параметры ядра Linux . Так не выполняется автозагрузка программы linux, но, тем не менее, иногда может быть полезно.
Автозагрузка в системе инициализации
Чаще всего, когда говорится автозагрузка Linux, подразумевается именно автозагрузка сервисов с помощью системы инициализации. В systemd очень продвинутая система управления службами . Здесь поддерживается разрешение зависимостей, параллельный запуск, отсрочка запуска и перезапуск при ошибке. В терминологии Systemd все запускаемые программы представлены файлами юнитов, в каждом юните описаны параметры программы, ее исполняемый файл, а также дополнительные требования к запуску.
Для добавления или удаления служб из автозапуска используется команда systemctl. Чтобы добавить службу в автозапуск выполните:
$ sudo systemctl enable имя_службы
А чтобы отключить ее автозапуск linux:
$ sudo systemctl disable имя_службы
Например, если вы хотите добавить в автозагрузку Apache, то нужно выполнить:
$ sudo systemctl enable apache
Также вы можете проверить добавлена ли уже служба в автозагрузку:
$ sudo systemctl is-enabled httpd
Если вы не знаете точное имя файла сервиса, но знаете его первую букву, то можно использовать автодополнение, как и в любом другом месте терминала с помощью кнопки Tab:
Также вы можете посмотреть все сервисы, которые были добавлены в автозагрузку с помощью команды:
$ systemctl list-unit-files | grep enabled
Автозагрузка скриптов в Linux
Раньше было принято размещать все скрипты, которые запускаются по умолчанию в файле /etc/rc.local. Этот файл все еще существует, но это пережиток системы инициализации SysVinit и теперь он сохраняется только для совместимости. Скрипты же нужно загружать только с помощью Systemd.
Для этого достаточно создать простой юнит-файл и добавить его в автозагрузку, как любой другой сервис. Сначала создадим этот файл:
$ sudo vi /lib/systemd/system/runscript.service
Description=My Script Service
After=multi-user.target
Type=idle
ExecStart=/usr/bin/local/script.sh
WantedBy=multi-user.target
В секции Unit мы даем краткое описание нашему файлу и говорим с помощью опции After , что нужно запускать этот скрипт в многопользовательском режиме (multi-user). Секция Service самая важная, здесь мы указываем тип сервиса —
Осталось выставить правильные права:
$ sudo chmod 644 /lib/systemd/system/runscript.service
Затем обновить конфигурацию и добавить в автозагрузку Linux новый скрипт:
$ sudo systemctl daemon-reload
$ sudo systemctl enable myscript.service
После следующей перезагрузки этот скрипт будет запущен автоматически. Обратите внимание, что для каждого скрипта, который вы собираетесь запускать должны быть правильно выставлены права, а именно нужно установить флаг выполнения. Для этого используйте команду chmod:
$ sudo chmod u+x /usr/local/bin/script
В параметрах мы передаем утилите адрес файла скрипта. Исполняемость — это обязательный параметр для всех способов.
Автозагрузка X сервера
Часто, в легких окружениях рабочего стола и оконных менеджеров для автозагрузки программ используется автозагрузка на уровне X сервера. Все запускаемые, таким образом, скрипты будут стартовать после запуска X сервера. Чтобы настроить такую автозагрузку Linux вам будет достаточно добавить путь к нужному скрипту в файл ~/.xinitrc или /etc/X11/xinit/xinitrc. Синтаксис добавляемой строки таков:
exec путь_к_скрипту &
Если файла ~/.xinitrc еще не существует, то его нужно создать:
$ cp /etc/X11/xinit/xinitrc ~/.xinitrc
Затем, чтобы добавить в автозагрузку linux скрипт, отредактируйте файл так, как вам нужно. Например, будем запускать Firefox:
exec /usr/bin/firefox &
Автозагрузка окружения рабочего стола
Такие мощные окружения рабочего стола как Gnome и KDE имеют свои приложения для автозагрузки. Например, в Gnome программа называется «Запускаемые автоматически приложения» . Вы можете запустить ее из главного меню системы:
Здесь вы видите все программы, которые уже добавлены в автозагрузку. Вы можете отключить каждую из них просто сняв галочку.
Чтобы добавить новую программу или скрипт в автозагрузку нажмите кнопку «Добавить»:
Тут вам нужно заполнить три поля:
- Имя — произвольное имя для команды, по которому вы сможете ее найти;
- Команда — полный путь к исполняемому файлу программы;
А главное, полностью бесплатная операционная система, построенная на ядре Linux . Поэтому всё больше обладателей компьютеров становятся её пользователями. Если в их число попали и вы, то вам стоит, нет, не научиться — учиться там нечему — всего лишь понять и освоить основы управления. Например, как настроить автозапуск приложений и сервисов в Ubuntu.
Автозагрузка в Ubuntu — такой же процесс, как и на других ОС. Вы, должно быть, помните и представляете, как на Windows при включении ПК сразу же запускались Skype , uTorrent и ещё ряд программ. На Убунту есть несколько программ, которые аналогичным образом включаются вместе с компьютером. Их список можно изменить, как вам удобно: удалить лишние или добавить ещё несколько.
Добавление процессов
Добавить новый сервис , утилиту или команду в автозагрузку Ubuntu совсем не сложно. Делается это при помощи меню.
Добавлять таким образом можно не только утилиты, но и просто сервисы. Только в верхней строчке нужно выбрать подходящий тип, если он есть, а также вписать нужную команду. Главное — знать её.
Отсрочка
В Убунту есть также прекрасная возможность делать отсрочку включения — прямо как на современных духовых шкафах или мультиварках. Она делается с помощью введения небольшого дополнения к тексту команды. Которое выглядит следующим образом: «sleep 20;» (без кавычек). Вместо 20 можно вписать любое число, которое будет означать количество секунд, которые процесс «спит» перед тем, как запуститься. Таким образом вы можете дать системе время полностью загрузиться, после чего уже начнут включаться определённые сервисы или программы.
Удаление
Если вы уже пробовали добавлять программы в автоматический старт, то понимаете, что и удалить их оттуда будет очень легко.
- Снова заходим в утилиту управления автозагрузкой.
- Находим те процессы, которые нам не нужны.
- Выделяем их, жмём «Удалить».
Теперь лишние процессы будут убраны из автозапуска Ubuntu. Лучше иметь там только самое необходимое.
Стоит понимать, что если добавить много приложений в автозагрузку Ubuntu, ОС будет загружаться гораздо медленнее . Поэтому лучше не перебарщивайте и правильно регулируйте настройки автоматического запуска. Функция действительно очень удобная и вместе с отсрочкой запуска даёт хороший инструмент для автоматического регулирования действий системы.
Целью данной статьи является ознакомление с принципами автозагрузки в операционной системе Ubuntu на примере Ubuntu Server 10.04 LTS, а также демонстрация настройки автозагрузки виртуальной машины, работающей под управлением VirtualBox, и корректное завершение работы последней в автоматическом режиме при выключении Ubuntu Server.
Внимание! Описанный ниже пример не может быть применим к настройке автозагрузки графических приложений для конкретного пользователя системы в настольных версиях Ubuntu. Для этого используйте пункт «Запускаемые приложения» из главного меню Ubuntu.
В первую очередь, это автоматический запуск сервисов/приложений при старте операционной системы. Автозагрузка также может обеспечивать корректное завершение этих служб/приложений при выключении или перезагрузке системы.
Организация автозагрузки в Ubuntu Server.
Разумеется, для того, чтобы правильно запустить/остановить сервис, необходимо описать сценарий с командами для запуска/остановки. Взгляните на содержимое каталога /etc/init.d: он содержит скрипты, которые управляют загрузками/остановками сервисов на вашей машине. Итак, первый, но не последний пункт успешной настройки — это наличие скрипта в /etc/init.d. В скрипте не описывается, когда должен выполняться тот или иной сценарий. Он лишь может принимать параметры start, stop, restart и так далее. Откуда же Ubuntu знает, когда необходимо вызвать скрипт? Ответ кроется в каталогах /etc/rcN.d, где N – это цифра от 0 до 6. В этих каталогах хранятся символические ссылки на скрипты из /etc/init.d. Рассмотрим, что означает каждый каталог, и всё сразу станет понятно:
— rc0.d – выполнение скрипта при выключении системы;
— rc1.d – выполнение скрипта при запуске системы в однопользовательском режиме;
— rc2.d – выполнение скрипта при запуске системы в многопользовательском режиме;
— rc3.d – rc5.d – зарезервировано;
— rc6.d – выполнение скрипта при перезагрузке системы.
Например, если происходит перезагрузка, то будут выполнены все скрипты из каталога /etc/rc6.d, при выключении — из /etc/rc0.d и так далее. Цифра в названии каталога называется уровнем запуска. То есть каталог /etc/rc0.d будет называться нулевым уровнем запуска и так далее.
Есть еще один немаловажный момент, который необходимо знать — это очередность выполнения скриптов из каталогов rcN.d. Ведь для правильной организации запуска/остановки работы Ubuntu может потребоваться запускать/останавливать сервисы в определенном порядке. Этот момент решается специальным именованием файлов в каталогах уровней запуска. Файлы имеют следующие имена: NN[имя], где — это один символ («S» означает, что скрипт запускает сервис, «K» – останавливает), NN – порядковый номер, [имя] – имя файла. Символ «S» или «K» самостоятельно выбирать не придется, так как все скрипты в каталогах rc1.d-rc5.d должны начинаться с символа «S», а в каталогах rc0.d и rc6.d – с символа «K». Число «NN» определяет очередность запуска скриптов, который производится от меньшего к большему. Чем меньше число у скрипта для запуска, тем раньше он будет запущен при старте системы; чем больше число у скрипта остановки сервиса, тем позже он будет выполнен.
При необходимости запуска какой-либо службы или приложения до или после конкретного существующего сервиса просто подсмотрите его порядковый номер в соответствующей директории rcN.d и учитывайте при выборе порядкового номера для своего скрипта.
Ну что ж, где хранить скрипты и как их называть понятно, а вот как его написать?
В каталоге /etc/init.d находится пример скрипта для управления запуском/остановкой сервисов. Это файл /etc/init.d/skeleton, а в примере ниже он будет упрощен. Для создания нового скрипта необходимо сделать копию примера и отредактировать его под свои нужды. Воспользуемся следующей командой:
sudo cp /etc/init.d/skeleton /etc/init.d/myscript && vi /etc/init.d/myscript
При создании нового скрипта не забывайте давать ему права на выполнение. Чтобы добавить права на выполнение скрипту, используйте команду sudo chmod +x /etc/init.d/myscript
Скрипт готов. Что дальше?
В некоторых источниках встречаются рекомендации по созданию символических ссылок вручную при помощи команды ln, не смотря на существование специальных утилит. Перед добавлением скрипта утилита проверяет его на валидность, а команда ln создаст ссылку даже при наличие ошибок. Лучше отдать предпочтение специализированным утилитам, таким как update-rc.d, которая поставляется в комплекте с Ubuntu. С её помощью можно добавить новый скрипт в любой уровень загрузки, удалить существующий и так далее. Вот пример использования:
sudo update-rc.d myscript start 99 2 3 4 5 . stop 01 0 1 6 .
Эта команда добавит новый скрипт «myscript» во все уровни загрузки. Будет выполнен запуск сервиса на уровнях со 2 по 5 с приоритетом 99 (в последнюю очередь) и остановка сервиса на 0, 1 и 6 уровнях с приоритетом 01 (самым первым).
Чтобы удалить скрипт из автозагрузки, воспользуйтесь командой:
sudo update-rc.d -f myscript remove
Рассмотрим пример настройки автозагрузки.
Задача: настроить автоматический запуск виртуальной машины, работающей под управлением VirtualBox, которая должна запускаться спустя две минуты после запуска операционной системы Ubuntu Server. При выключении или перезагрузке Ubuntu Server виртуальная машина должна корректно завершать свою работу.
Предположим, что на Ubuntu Server установлен VirtualBox и существует виртуальная машина с именем «Slave», операционная система которой поддерживает возможность корректного завершения работы при нажатии кнопки выключения компьютера (поддержка ACPI).
Для начала напишем скрипт, который будет располагаться в каталоге /etc/init.d:
sudo cp /etc/init.d/skeleton /etc/init.d/slave && sudo vi /etc/init.d/slave
Отредактировав скрипт и оставив лишь минимально необходимое, получаем файл со следующим содержимым:
#!/bin/sh
### BEGIN INIT INFO
# Provides: slave
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: ability for starting and saving execution state of VBox virtual machines
# Description: This script is used for starting and saving execution state of VBox virtual machines by using System-V on Ubuntu Server. This file should be placed in /etc/init.d
### END INIT INFO
# Author: Fuks Alexander
. /lib/lsb/init-functions
# Perform start of Slave»s virtual machine with delay 2 minutes
perform_start()
{
log_daemon_msg «Starting Vbox Slave machine»
sleep 120 && su -l -c «VboxHeadless –startvm Slave &» kungfux
log_end_msg 0
return 0
}
# Send POWEROFF ACPI signal for Slave»s virtual machine
perform_save()
{
log_daemon_msg «Sending ACPI POWER OFF signal for Vbox Slave machine»
su -l -c «VboxManage controlvm Slave acpipowerbutton» kungfux
log_end_msg 0
return 0
}
case “$1” in
start)
perform_start
;;
stop)
perform_save
;;
*)
echo “Usage: /etc/init.d/slave {start|stop}”
exit 3
;;
esac:
Добавим скрипт во все уровни запуска:
[email protected]:~$ sudo update-rc.d slave start 99 2 3 4 5 . stop 01 0 1 6 . Adding system startup for /etc/init.d/slave … /etc/rc0.d/K01slave -> ../init.d/slave /etc/rc1.d/K01slave -> ../init.d/slave /etc/rc6.d/K01slave -> ../init.d/slave /etc/rc2.d/S99slave -> ../init.d/slave /etc/rc3.d/S99slave -> ../init.d/slave /etc/rc4.d/S99slave -> ../init.d/slave /etc/rc5.d/S99slave -> ../init.d/slave
Перегрузившись, можно проверить, что команда запуска виртуальной машины была выполнена. Посмотрим отчет о запуске:
[email protected]:~$ cat /var/log/boot.log fsck from util-linux-ng 2.17.2 /dev/sda1: clean, 92526/4751360 files, 2565789/18975488 blocks * Starting Jenkins Continuous Integration Server jenkins * Starting No-IP.com dynamic address update noip2 * Not starting internet superserver: no services enabled * Starting Postfix Mail Transport Agent postfix * Starting bittorrent daemon transmission-daemon * Starting VirtualBox kernel modules * Starting NTP server ntpd * Starting ftp server proftpd * Starting web server apache2 * Starting Vbox Slave machine
В последней строке присутствует текст, который был выведен скриптом «slave».
Более того, написанными скриптами для init.d можно пользоваться из терминала в любой момент времени. Например, для запуска виртуальной машины выполним команду:
[email protected]:~$ /etc/init.d/slave start
Как видно из примера, операционная система Ubuntu предоставляет богатые возможности для управления запуском/остановкой сервисов/программ. В скриптах автозагрузки можно описывать зависимости запускаемых/останавливаемых служб от других служб с помощью секций «Required-Start/Required-Stop», да и сам скрипт может быть любой сложности, что позволяет организовать даже самую «тонкую» автозагрузку.
Данный материал написан для «Первого конкурса русскоязычных статей для ОС Ubuntu 2011 года» (konkurs.ubuntu.ru).
Многие программы мы используем постоянно и запускаем их каждый раз при старте системы, а некоторые, такие, как мессенджеры или различные утилиты должны постоянно работать в фоне чтобы правильно выполнять свою задачу. Для этого в операционных системах существует автозагрузка. Программы запускаются автоматически, после того, как запустилась ОС или графическая оболочка.
В этой статье мы поговорим о том, как работает автозагрузка в Ubuntu, какие существуют способы автозагрузки в этой системе и как добавить туда программы.
АВТОЗАГРУЗКА В UBUNTU
Первым делом нужно сказать, что в Ubuntu существует несколько уровней автозагрузки. Я не буду говорить здесь про systemd и , так как уже рассматривал это в одной из первых статей. Программу или скрипт можно добавить в автозагрузку такими путями:
- Утилита «Автоматически запускаемые приложения»;
- Папка «Автозапуск»;
- Файл rc.local;
- Файл Xinitrc;
Мы рассмотрим первые два способа, поскольку два последние более рассчитаны на скрипты, а не программы. Сначала автозагрузка в Ubuntu с помощью стандартной утилиты.
Откройте меню системы и наберите «Авто» и откройте программу, которая будет первой в списке, Автоматически запускаемые приложения:
Здесь будут перечислены все приложения, которые сейчас запускаются автоматически. Чтобы добавить в автозагрузку ubuntu еще одно приложение, нажмите кнопку «Добавить» :
Здесь нужно ввести имя нового пункта, а также команду запуска приложения. Вы можете выбрать приложение в файловой системе, если не помните путь, нажав кнопку «Обзор» :
В команде можно указывать параметры, если это нужно. Еще можно заполнить поле «Описание» , но это уже необязательно. Если вам нужна определенная программа из главного меню, но вы не знаете где ее найти и как пишется ее команда, можно посмотреть ее в том же меню. Но для этого нам нужно сначала установить утилиту «Главное меню» из центра приложений:
Здесь вам нужно обратить внимание на строку «Команда» , скопируйте ее и можете использовать для автозагрузки.
Следующий способ — это папка автозагрузки. Она находится по адресу ~/.config/autostart. По сути, это тот же самый способ, только он может выполняться без графического интерфейса. Когда вы настраиваете автозагрузку через приложение, то в этой папке создаются файлы настроек с именем desktop. Вот, например:
Напоминаю, что для того, чтобы посмотреть скрытые файлы нужно нажать сочетание клавиш Ctrl+H. Теперь попытаемся создать новый конфигурационный файл для еще одной программы. Вот таким будет его синтаксис:
Type
=
Application
Name
=
имя_нового_пункта
Exec
=
команда
Icon
=
полный_путь_к_иконке
Comment
=
комментарий
X-GNOME-Autostart-enabled
=
true
Для примера, сделаем файл для запуска плеера VLC, он будет выглядеть вот так:
vi ~/.config/autostart/vlc.desktop
Type=Application
Name=VLC
Exec=vlc
Icon=/usr/share/icons/hicolor/16×16/apps/vlc.png
Comment=VLC Media Player
X-GNOME-Autostart-enabled=true
Готово, и самое интересное, что если вы откроете приложение автозагрузки. То там тоже появится этот пункт. Это такой способ настройки без графического интерфейса.
ВЫВОДЫ
В этой небольшой статье мы рассмотрели как настраивается автозагрузка программ ubuntu различными способами — через графический интерфейс и терминал. Вы можете использовать эти знания, чтобы сделать работу в вашей системе более удобной. Даже несмотря на то, что Ubuntu перешла на Gnome, автозагрузка в ubuntu 16.04 и сейчас выглядят практически одинаково. Если у вас остались, вопросы, спрашивайте в комментариях!
Похожие записи:
Создаём пустой файл.
Первой строкой пишем:
#!/bin/sh
Данная строка указывает, какую командную оболочку необходимо использовать. Дальше свои команды.
Сохраним его под оригинальным названием (чтоб не совпадал с уже существующими) в каталоге /usr/sbin/.
Чтобы скрипт запускался при загрузке, необходимо прописать его в файле /etc/rc.local до строчки exit 0. Если у вас не существует данного файла, создайте его и вставьте в него следующее содержимое:
#!/bin/sh -e #Здесь вставляем строку с указанием вашего скрипта. /usr/sbin/mescripts exit 0
Немного более сложный способ
Позволяет задать последовательность загрузки и поведение скрипта при разных runlevel»ах.
Изучаем /etc/init.d/skeleton , на его основе создаем скрипт /etc/init.d/my_script , которым будет запускаться/останавливаться наше приложение.
В этих директориях лежат скрипты остановки сервисов:
/etc/rc0.d/ /etc/rc1.d/ /etc/rc6.d/
в этих — скрипты запуска сервисов:
/etc/rc2.d/ /etc/rc3.d/ /etc/rc4.d/ /etc/rc5.d/
Изучаем их на предмет последовательности (чем меньше первая цифра в начале скрипта, тем раньше запускается/останавливается приложение). Это может быть критично, если ваше приложение будет зависит от каких-то сервисов.
После того, как определились со скриптом запуска и очередностью, выполняем следующее:
Sudo update-rc.d my_script start 70 2 3 4 5 . stop 20 0 1 6 .
Здесь я определил, что мой скриптик должен запускаться попозже остальных(70), и останавливаться пораньше(20). Цифры 2 3 4 5 0 1 6 означают уровни загрузки.
Если что-то не понравилось — все можно удалить
Sudo update-rc.d -f my_script remove
Подробности в man update-rc.d .
Есть директория /etc/network/ с поддиректориями if-down.d , if-pre-up.d , if-post-down.d , if-up.d . Если разместить скрипт в одной из этих поддиректорий, то он будет выполняться соответственно при выключении, перед включением, после выключения или при включении сети.
Другой способ — указать в файле /etc/network/interfaces одну из следующих директив: up , pre-up , post-up , down , pre-down , post-down . Например, строка
Post-up /path/to/script.sh
после включения сети выполнит скрипт script.sh . Подробнее можно почитать в man interfaces .
В любом случае на скрипт должны быть установлены права, разрешающие выполнение, иначе он не сможет запуститься.
Запуск программы при включении компьютера на любой ОС — IT Expert
Установленные программы часто добавляют себя в процесс автозагрузки в Windows, Mac OS X и даже Linux. Но вы также можете добавить свои собственные любимые программы в процесс запуска и запустить их автоматически после входа в ОС.
Это особенно полезно для фоновых приложений или инструментов, которые автоматически выполняют определенные функции, но также вы даже можете добавлять обычные приложения, и они загрузятся при входе в систему.
Загрузка программ при запуске Windows
В Windows 7 и более ранних версиях в меню «Пуск» содержалась папка «Автозагрузка», для быстрого доступа к элементам управления. В этих версиях Windows вы можете просто открыть меню «Пуск», найти ярлык для приложения, которое вы хотите запустить автоматически, щелкните его правой кнопкой мыши и выберите «Копировать». Затем найдите папку «Автозагрузка» в разделе «Все приложения» в меню «Пуск», щелкните на нее правой кнопкой мыши и выберите «Вставить», чтобы вставить копию этого ярлыка.
Эта папка уже не так легко доступна в Windows 8, 8.1 и 10, но она по-прежнему доступна. Чтобы получить к ней доступ, нажмите сочетание клавиш Windows+R, введите «shell: startup» и в диалоговом окне «Запуск» нажмите «Ввод».
Ярлыки, которые вы добавляете в папку «shell: startup», запускаются только при входе в систему с вашей учетной записью пользователя. Если вы хотите, чтобы ярлык запускался для всех пользователей, введите команду «shell: common startup».
Вставьте ярлыки в эту папку, и Windows автоматически загрузит программу при входе в ваш компьютер. В Windows 10 вы можете просто перетаскивать ярлыки из списка «Все приложения» в меню «Пуск» прямо в эту папку.
Автозапуск программ при старте Mac OS X
В Mac OS X также существует интерфейс, который позволяет отключать программы запуска, а также добавлять свои собственные. Откройте окно «Системные настройки», щелкните значок «Пользователи и группы» и нажмите «Объекты входа».
Нажмите кнопку «+» внизу этого списка, чтобы добавить приложения, или перетащите их в список приложений. Они будут загружаться автоматически при входе в ваш компьютер.
Открытие программы при загрузке Linux
У разных дистрибутивов Linux есть разные способы сделать это. Например, в Unity Ubuntu откройте Dash и введите слово «start». Нажмите «Запуск приложений», чтобы просмотреть список запущенных приложений. Нажмите кнопку «Добавить» в этом списке, чтобы добавить свои собственные приложения. Введите имя и введите команду для запуска приложения. Вы также можете просто использовать этот инструмент для запуска команды при входе в систему.
Рабочий стол GNOME, удалил старый инструмент gnome-session-properties, но этот параметр по-прежнему доступен в GNOME Tweak Tool, который по умолчанию установлен в некоторых дистрибутивах Linux. Изучите панель настроек рабочего стола Linux, чтобы найти подходящий инструмент.
Вы также можете управлять этим из скрытого каталога «~/.config/autostart/«, который можно открыть через консоль или файловый менеджер. Знак «точки» перед .config указывает, что это скрытый каталог, а ~ указывает, что он находится в вашем домашнем каталоге — «/home/username/.config/autostart/«. Чтобы открыть его, запустите диспетчер файлов рабочего стола, введите «~/.config» в адресную строку и нажмите «Ввод». Дважды щелкните на папку «autostart» или создайте ее, если она еще не существует.
Добавьте файлы типа .desktop, чтобы программы запускались автоматически при загрузке системы. Эти файлы являются ярлыками приложений — их часто можно создавать путем перетаскивания приложения на рабочий стол или даже в окно «~/.config/autostart/«.
Если вы не используете среду рабочего стола, а просто хотите автоматически запускать команду — или несколько команд — каждый раз, когда вы входите в систему, добавьте команды в ваш файл .bash_profile, расположенный в файле «~/.bash_profile», полный путь «/home/username/.bash_profile».
Конечно, есть другие способы запуска программ при старте системы. Например, вы можете добавлять записи реестра в Windows, но это самые простые способы сделать это.
Как настроить автозапуск приложений и сервисов в ubuntu
Как добавить приложение в автозагрузку в Ubuntu 14.04 LTS/15.04/16.04 LTS? Если вы задавались этим вопросом, ознакомьтесь с материалом ниже где все по пунктам описано
Многие наверное задумывались как добавить свое приложение в автозагрузку в дистрибутиве Ubuntu 16.04/15.04/15.10/14.10/14.04/13.10/13.04.
Первым делом, что нам нужно чтобы добавить приложение в автозагрузку? Перейдем на боковую панель меню(лаунчер), и выберем первую иконку для открытия шторки в Dash и воспользуемся поиском чтобы найти ярлык приложения — Автоматически запускаемые приложения.
- Далее запустим приложение — Автоматически запускаемые приложения(startup applications).
- Чтобы добавить новое приложение в автозагрузку, нажмем на кнопку добавить, далее мы увидим поля(имя, команда и описание) в поле имя мы просто добавляем имя приложения для автозагрузки как пример, я добавил в автозагрузку приложение Cairo-Dock.
Да, именно так, все просто и ничего лишнего:
- Поле имя — здесь можно добавить либо какое имя с большой или маленькой буквы разницы нет
- Поле команда — в данном поле нужно написать название программы с маленькой буквы, как пример — cairo-dock
- Поле описание — в данном поле пишем любое описание приложения, но можно и ничего не писать так как поле не обязательное.
Да
Нет
Статья оказалась полезной для 0 человек
Порядок вывода комментариев: По умолчанию |
Источник: https://Blogas.info/autorun-linux
Автозагрузка в Ubuntu
Многие программы мы используем постоянно и запускаем их каждый раз при старте системы, а некоторые, такие, как мессенджеры или различные утилиты должны постоянно работать в фоне чтобы правильно выполнять свою задачу. Для этого в операционных системах существует автозагрузка. Программы запускаются автоматически, после того, как запустилась ОС или графическая оболочка.
В этой статье мы поговорим о том, как работает автозагрузка в Ubuntu, какие существуют способы автозагрузки в этой системе и как добавить туда программы.
Автозагрузка в ubuntu
Первым делом нужно сказать, что в Ubuntu существует несколько уровней автозагрузки. Я не буду говорить здесь про systemd и автозагрузку сервисов, так как уже рассматривал это в одной из первых статей. Программу или скрипт можно добавить в автозагрузку такими путями:
- Утилита «Автоматически запускаемые приложения»;
- Папка «Автозапуск»;
- Файл rc.local;
- Файл Xinitrc;
Мы рассмотрим первые два способа, поскольку два последние более рассчитаны на скрипты, а не программы. Сначала автозагрузка в Ubuntu с помощью стандартной утилиты.
- Откройте меню системы и наберите «Авто» и откройте программу, которая будет первой в списке, Автоматически запускаемые приложения:
- Здесь будут перечислены все приложения, которые сейчас запускаются автоматически. Чтобы добавить в автозагрузку ubuntu еще одно приложение, нажмите кнопку «Добавить»:
- Здесь нужно ввести имя нового пункта, а также команду запуска приложения. Вы можете выбрать приложение в файловой системе, если не помните путь, нажав кнопку «Обзор»:
В команде можно указывать параметры, если это нужно. Еще можно заполнить поле «Описание», но это уже необязательно. Если вам нужна определенная программа из главного меню, но вы не знаете где ее найти и как пишется ее команда, можно посмотреть ее в том же меню. Но для этого нам нужно сначала установить утилиту «Главное меню» из центра приложений:
- Дальше запустите утилиту и найдите в ней нужное приложение. Затем нажмите «Свойства»:
- Здесь вам нужно обратить внимание на строку «Команда», скопируйте ее и можете использовать для автозагрузки.
Следующий способ — это папка автозагрузки. Она находится по адресу ~/.config/autostart. По сути, это тот же самый способ, только он может выполняться без графического интерфейса. Когда вы настраиваете автозагрузку через приложение, то в этой папке создаются файлы настроек с именем desktop. Вот, например:
Напоминаю, что для того, чтобы посмотреть скрытые файлы нужно нажать сочетание клавиш Ctrl+H. Теперь попытаемся создать новый конфигурационный файл для еще одной программы. Вот таким будет его синтаксис:
[Desktop Entry]
Type=Application
Name=имя_нового_пункта
Exec=команда
Icon=полный_путь_к_иконке
Comment=комментарий
X-GNOME-Autostart-enabled=true
Для примера, сделаем файл для запуска плеера VLC, он будет выглядеть вот так:
vi ~/.config/autostart/vlc.desktop
- [Desktop Entry]
Type=Application
Name=VLC
Exec=vlc
Icon=/usr/share/icons/hicolor/16×16/apps/vlc.png
Comment=VLC Media Player - X-GNOME-Autostart-enabled=true
Готово, и самое интересное, что если вы откроете приложение автозагрузки. То там тоже появится этот пункт. Это такой способ настройки без графического интерфейса.
ВЫВОДЫ
В этой небольшой статье мы рассмотрели как настраивается автозагрузка программ ubuntu различными способами — через графический интерфейс и терминал.
Вы можете использовать эти знания, чтобы сделать работу в вашей системе более удобной. Даже несмотря на то, что Ubuntu перешла на Gnome, автозагрузка в ubuntu 16.04 и сейчас выглядят практически одинаково.
Если у вас остались, вопросы, спрашивайте в х!
(8
Источник: https://losst.ru/avtozagruzka-v-ubuntu
Управление автозагрузкой сервисов и скриптов в Linux
В данной статье мы рассмотрим основы управлением автозагрузкой сервисов и скриптов в Linux CentOS 7/8. В частности, разберем основы работы с демоном systemd, научимся добавлять в автозагрузку сервисы и убирать их оттуда, а также рассмотрим альтернативные варианты запуска скриптов или демонов после старта системы.
Задача статьи – научить вас быстро разобраться со списками служб и скриптов которые запускаются в Linux автоматически, добавить в автозагрузку свои службы или скрипты, или отключить автозапуск определённых программ.
Systemd: управление автозагрузкой служб в Linux
В большистве популярных современных популярных дистрибутивов Linux (CentOS 7, RHEL, Debian, Fedora и Ubuntu) в качестве демона автозагрузки вместо init.d используется systemd.
Systemd – менеджер системы и служб Linux, используется для запуска других демонов и управления ими в процессе работы, использует unit-файлы из /etc/systemd/system (init.d использовал скрипты из каталога /etc/init.d/).
Systemd позволяет распараллелить запуск служб в процессе загрузки ОС, тем самым ускоряя запуск.
- Для управления system используется команда systemctl.
- Для начала, после загрузки системы, мы проверим список юнитов, которые в данный момент добавлены в systemd:
- systemctl list-units
- Список unit-файлов можно получить командой:
- systemctl list-unit-files
- Данная команда отобразит все доступные юнит-файлы (не зависимо от того, были они загружены в systemd после загрузки ОС или нет).
- Чтобы вывести список активных сервисов и их состояние, выполните:
- # systemctl list-units -t service
Следующая команда выведет список юнитов, которые загрузил или пытался загрузить systemd. Так как после запуска некоторые юниты могут стать неактивными, с помощью флага —all вы получите полный список.
# systemctl list-units —all
UNIT LOAD ACTIVE SUB DESCRIPTION
proc-sys-fs-binfmt_misc.automount loaded active waiting ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
● exim.service not-found inactive dead exim.service
firewalld.service loaded active running firewalld — dynamic firewall daemon
[email protected] loaded active running Getty on tty1
● ip6tables.service not-found inactive dead ip6tables.service
● ipset.service not-found inactive dead ipset.service
● iptables.service not-found inactive dead iptables.service
Bring up/down networking
● NetworkManager-wait-online.service not-found inactive dead
Как видим из списка, здесь отображаются даже сервисы, которые не были найдены на диске «not-found».
Использую данную команду, вы можете добавить и другие флаги, например:
- —state — используется для определения состояния демона Load, Active, Sub
- —type — позволяет фильтровать юниты по их типу.
- Примеры:
- systemctl list-units —all —state=active — выведет список только активных юнитов
- systemctl list-units —type=service — выведет список юнитов, которые являются сервисом.
Добавление сервиса в systemd
Для управления сервисами в systemd используется особый синтаксис. После имени серверсв в конце нужно указывать .service. Например:
- systemctl enable nginx.service – команда добавит в автозагрузку веб-сервер nginx
- Данная команда создаст символическую ссылку на копию файла, указанного в команде сервиса, в директории автозапуска systemd.
- # systemctl enable nginx.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service
- Чтобы посмотреть добавлен тот или иной сервис в автозагрузку, можно проверить его статус:
- systemctl status nginx.service
- При выводе нужно обратить внимание на строку:
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Значение enabled означает что данный сервис загружается автоматически (добавлен в автозагрузку). Если сервис не загружается автоматом, здесь буде указано disabled.
Удаление сервиса из systemd
- Вы можете удалить сервис из автозагрузки, чтобы он не запускался после старта Linux (при этом сам сервис с сервера не удаляется).
Чтобы удалить сервис из автозагрузки, выполните команду:
- systemctl disable нужный_сервис
- Например, чтобы удалить из автозагрузки nginx, выполните:
- # systemctl disable nginx.service
Removed symlink /etc/systemd/system/multi-user.target.wants/nginx.
service
После выполнения команды, симлинк на файл сервиса будет удален из директории systemd. Можно проверить, есть ли юнит в автозагрузке:
# systemctl is-enabled sshd
Systemd: маскировка юнитов
- В моей практике встречались «вредные» сервисы, которые после удаления их из автозагрузки, все равно там оставались и запускались после рестарта ОС. Чтобы решить этот вопрос, можно замаскировать сервис:
- systemctl mask nginx.service
- И после этого, он вообще не будет запускаться, ни вручную, ни после перезагрузки ОС:
- # systemctl mask nginx.service
Created symlink from /etc/systemd/system/nginx.service to /dev/null.
# service nginx restart
Redirecting to /bin/systemctl restart nginx.service
Failed to restart nginx.service: Unit is masked.
Снять маску можно командой:
# systemctl unmask nginx.service
Removed symlink /etc/systemd/system/nginx.service.
Если после маскировки сервиса, вы проверите юнит-файлы, то увидите, что сервис помечен как замаскированный (состояние masked):
Таким нехитрым способом, можно избавить себя от удаления сервиса, даже если он не удаляется из автозагрузки systemd.
Автозапуска скриптов и сервисов с помощью rc.local
Для запуска различных скриптов при загрузке Linux чаще всего используется rc.local.
Но помимо скриптов, через rc.local так же можно и запускать сервисы, даже те, которые запускаются через systemd. Не могу ответить на вопрос, для чего использовать в таком случае rc.local, если есть systemd, но пару примеров я приведу.
- Начнем с того, что файл /etc/rc.local должен быть исполняемым:
- chmod +x /etc/rc.local
- Rc.local должен быть добавлен в автозагрузку systemd:
- systemctl enable rc-local
- И на примере того же nginx, мы можем добавить в rc.local команду запуска веб-сервера:
- service nginx start
Но я редко использую rc.local для запуска сервисов. Чаще rc.local используется, когда нужно запустить скрипт, либо выполнить разово какую-то команду.
К примеру, я создал скрипт /root/test.sh который выполняет некоторые действия, и хочу запустить его сразу после запуска системы. Добавляем в файл rc.local строку:
sh /root/test.sh
Начиная с CentOS 7, разработчики указывают на то, что rc.local устаревший демон и осуществлять автозапуск скриптов или сервисов через него, это прошлый век. Но пока он работает, я пользуюсь им, так как он очень прост в эксплуатации.
Создание собственного демона и добавление его в systemd
Вы можете создать собственный демон, которым можно будет управлять через systemd.
Например, нам нужно запускать все тот же скрипт /root/test.sh после перезагрузки системы. Начнем с создания файла нашей будущей службы:
touch /etc/systemd/system/test-script.servicechmod 664 /etc/systemd/system/test-script.service
- nano /etc/systemd/system/test-script.service
- Содержимое файла будет следующее:
[Unit]
Description=Template Settings Service
After=network.target
[Service]
Type=oneshot
User=root
ExecStart=/root/test.sh
[Install]
WantedBy=multi-user.target
- Основные параметры:
- User – пользователь под которым будет запускаться демон
- Type=oneshot — процесс будет завершен до запуска дальнейших юнитов
- Проверяем и перезапускаем:# systemctl daemon-reload# systemctl start test-script.service
- # systemctl status test-script.service
● test-script.service — Test
Loaded: loaded (/etc/systemd/system/test-script.service; disabled; vendor preset: disabled)
Active: active (running)
Если вас устроило то, как работает сервис, добавьте его в автозагрузку:
# systemctl enable test-script.service
Created symlink from /etc/systemd/system/multi-user.target.wants/test-script.service to /etc/systemd/system/test-script.service.
Таким образом, вы можете добавить любой ваш скрипт в автозагрузку через systemd.
Автозапуск через cron
- Если вам с какой-то периодичностью нужно запускать скрипт или команду, вы можете воспользоваться cron-ом:
- crontab -e — открыть терминал для написания задания cron
- И добавьте туда нужное вам задание, например:
* * * * * /root/test.sh — запускать скрипт каждую минуту.
Можно написать скрипт watch-dog, который по заданию будет проверять, например, статус какого-либо сервиса и, если он не работает, запускать его. На нескольких своих проектах я использую подобную схему.
Чтобы вывести список всех заданий в крон, нужно выполнить команду:
# crontab -l
* * * * * /root/test.sh
Допустимые значения для времени запуска заданий cron по порядку:
- Минуты от 0 до 59
- Часы от 0 до 59
- День месяца от 1 до 31
- Месяц от 1 до 12
- День недели от 0 до 7 (0 или 7 это воскресение)
В нашем задании скрипт запускается каждую минуту, поэтому там стоят «*».
Так же вы можете разместить нужный вам скрипт в директориях cron:
- /cron.daily – выполнение скрипта ежедневно
- /cron.hourly – выполнение скрипта ежечасно
- /cron.monthly — выполнение скрипта ежемесячно
- /cron.weekly — выполнение скрипта еженедельно
Скрипты в указанных директория будут запускаться согласно автоматически подготовленного расписания.
.bashrc: автозапуск скриптов при запуске терминала
Если вам требуется выполнять какие-то действия при запуске терминала ssh, вы можете добавить любую команду или выполнение скрипта в .bash_profile или .bashrc.
Теоретически, вы можете добавить какое-либо действие в любой из этих файлов, оно выполнится в любом случае. Обычно все необходимое добавляется в .bashrc, а сам .bashrc запускают из .
bash_profile.
Я добавил в файл .bashrc команду на рестарт веб-сервиса nginx:
service nginx restart
После этого сохранил файл и перезапустил терминал:
Как видите, при запуске терминала, веб-сервер был перезапущен. Какие действия можно выполнять при запуске терминала? Вероятно, запускать какие-то вспомогательные утилиты, например, проверка uptime сервера:
Или вы хотите, чтобы при запуске терминала, вы сразу попадали в нужную вам директорию и запускали mc, добавьте в .bashrc
cd /var/mc
Надеюсь эта статья по управлению автозапуском сервисов и скриптов в LInux (статья писалась для CentOS) оказалась полезной для вас. Наверняка тем, кто только познает азы системного администрирования Linux, это информация будет кстати.
Источник: http://winitpro.ru/index.php/2019/10/11/avtozagruzka-servisov-i-skriptov-v-linux/
Ubuntu автозагрузка: как убрать и добавить программу в автозапуск
В Убунту есть 2 основных уровня автозапуска — в системе инициализации systemd и в рабочем окружении. Для пользовательского софта автозагрузка в Ubuntu может быть настроена в удобной графической утилите. Добавить в автозапуск можно программу или собственный скрипт.
Автозагрузка в Ubuntu
Актуальная Ubuntu 18.04 по умолчанию в качестве рабочего окружения использует GnomeShell. Для настройки автозапуска в этой версии ОС нужно:
- Нажать на кнопку «Обзор» в левом верхнем углу экрана.
- Начать вводить в строку поиска «Автоматически запускаемые приложения» и запустить найденную утилиту.
- Далее кликнуть по кнопке «Добавить», чтобы внести желаемое приложение в автозагрузку.
- Заполнить поля «Имя» (название программы — как удобно) и «Команда» (та, которую вводят в консоли для запуска этого софта). Поле «описание» необязательное, сюда разрешено вписать любой комментарий. Пример добавления Transmission в автозагрузку в Линукс показан на скриншоте:
- Нажать кнопку «Добавить».
Совет! Чтобы не ошибиться с правильностью команды, нужно установить утилиту «Главное меню» из UbuntuSoftwareCenter.
В ней выбрать интересующий пункт и открыть его свойства. Правильная команда копируется из одноименной строки.
Запуск приложений в Ubuntu, присутствующих в списке и помеченных галочкой, будет происходить при каждом старте ОС.
Все это приложения данного пользователя, системные программы и сервисы, утилита не отображает.
В предыдущих версиях операционной системы с графической оболочкой Unity утилита для настройки автозагрузки также ищется поиском по меню Dash или открывается с помощью команды в терминале:
gnome-session-properties.
Как добавить скрипт в автозагрузку Ubuntu
Кроме конкретного софта, добавить в автозагрузку Linux легко и самописный скрипт, чтобы оптимизировать работу за компьютером. Для этого необходимо:
- Сделать скрипт исполняемым с помощью команды:
sudochmodugo+x /home/user/script.sh
(где user — имя пользователя, а script — название скрипта, но путь до вашего файла .sh может отличаться: его нужно прописать полностью, иначе скрипт не запустится).
- Открыть «Автоматически запускаемые приложения» и нажать «Добавить».
- Ввести имя скрипта, а в качестве команды — полное название с путем до файла, например, /home/user/script.sh.
- Кликнуть по «Добавить».
Есть другой, классический, но считающийся устаревшим способ настроить автозапуск скрипта в Ubuntu. Для его выполнения нужно:
- Открыть терминал и выполнить команду:
sudonano /etc/rc.local
- Над строкой exit 0 прописать название и путь до скрипта.
- Сохранить изменение с помощью сочетания клавиш Ctrl+O, подтвердить клавишей Enter.
Этот способ подойдет и для автозагрузки на UbuntuServer, где нет графики.
Отсрочка автозапуска программ в Ubuntu
Если программ в автозагрузке Убунту очень много, их необходимо подгружать в определенном порядке или запускать спустя какое-то время после загрузки системы — поможет функция отсрочки. Для ее активации используется unix-утилита sleep. Воспользоваться возможностями этого инструмента можно в уже знакомой программе «Автоматически запускаемые приложения». Для этого нужно:
- Открыть окно параметров запускаемых приложений.
- Выделить курсором программу, автозапуск которой необходимо отсрочить, и воспользоваться кнопкой «Изменить».
- В строке «Команда» перед имеющеюся записью внести:
sleep 120,
где цифра после слова «спать» равна количеству секунд, которое приложение бездействует сразу после старта системы, перед тем как запуститься. Между данной формулой, в конце которой обязательна точка с запятой, и командой на запуск приложения, должен быть пробел.
В приведенном примере отложенной автозагрузки программ в Ubuntu приложение остается в состоянии «сна» 2 минуты, прежде чем открыться. Например, запуск через полчаса после старта ОС будет выглядеть как sleep 3h «имя программы». Пример, в котором Transmission запускается через 1 час:
sleep 1h; transmission-gtk %U
Аналогичным образом можно добавить в автозагрузку в Linux отсроченное выполнение пользовательского скрипта или запуск медиафайла.
Удаление из автозапуска Ubuntu
Чтобы убрать софт из автозагрузки Ubuntu, можно воспользоваться одним из 2 способов: через «Автоматически запускаемые приложения» или вручную. В первом случае достаточно запустить утилиту, выделить нужную программу и нажать «Удалить». Простое снятие галочки отключается программа, и она не будет запускаться при старте системы.
Ручной способ подразумевает использование папки autostart в Ubuntu. Она расположена по адресу /home/имя пользователя/.
config/autostart/ (чтобы увидеть эту скрытую папку, следует открыть домашний каталог в файловом менеджере и нажать одновременно клавиши Ctrl+H). В ней лежат файлы с расширением .
desktop для каждой программы из автозапуска, формирующиеся автоматически при добавлении через графическую утилиту. Достаточно удалить файл, чтобы программа больше не открывалась при включении компьютера.
Заключение
Автозагрузка в Ubuntu имеет множество способов тонкой настройки. Ее возможности трудно охватить. Грамотное использование этого инструмента делает ОС Linux практичнее в повседневных задачах.
Источник: https://iwsm.ru/operatsionnye-sistemy/linux/avtozagruzka-v-ubuntu
Автозагрузка сервисов в Linux [RTFM.WIKI]
linux:autostart
Вывести список всех сервисов
# systemctl list-unit-files —type=service
Проверить статус httpd
# systemctl status httpd
Добавить сервис в автозагрузку (аналог chkconfig on)
# systemctl enable httpd
Убрать сервис из автозагрузки
# systemctl disable httpd
Проверить добавлен ли httpd в автозагрузку
# systemctl is-enabled httpd
Проверить какие сервисы не смогли запуститься при старте системы
# systemctl —failed
UNIT LOAD ACTIVE SUB DESCRIPTION
ip6tables.service loaded failed failed IPv6 firewall with ip6tables
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.
Более подробный список доступных команд
Ниже представлены основные команды systemctl:
systemctl start name.service | запуск сервиса |
systemctl stop name.service | остановка сервиса |
systemctl restart name.service | перезапуск сервиса |
systemctl try-restart name.service | перезапуск сервиса только, если он запущен |
systemctl reload name.service | перезагрузка конфигурации сервиса |
systemctl status name.service | проверка, запущен ли сервис с детальным выводом состояния сервиса |
systemctl is-active name.service | проверка, запущен ли сервис с простым ответом: active или inactive |
systemctl list-units –type service –all | отображение статуса всех сервисов |
systemctl enable name.service | активирует сервис (позволяет стартовать во время запуска системы) |
systemctl disable name.service | деактивирует сервис |
systemctl reenable name.service | деактивирует сервис и сразу активирует его |
systemctl is–enabled name.service | проверяет, активирован ли сервис |
systemctl list-unit-files –type service | отображает все сервисы и проверяет, какие из них активированы |
systemctl mask name.service | заменяет файл сервиса симлинком на /dev/null, делая юнит недоступным для systemd |
systemctl unmask name.service | возвращает файл сервиса, делая юнит доступным для systemd |
Вывести список всех сервисов
# chkconfig —list
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
htcacheclean 0:off 1:off 2:off 3:off 4:off 5:off 6:off
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ip6tables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ipset 0:off 1:off 2:on 3:on 4:on 5:on 6:off
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
memcached 0:off 1:off 2:on 3:on 4:on 5:on 6:off
munin-node 0:off 1:off 2:on 3:on 4:on 5:on 6:off
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
named 0:off 1:off 2:on 3:on 4:on 5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
netfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ntpdate 0:off 1:off 2:off 3:off 4:off 5:off 6:off
portreserve 0:off 1:off 2:on 3:on 4:on 5:on 6:off
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rdisc 0:off 1:off 2:off 3:off 4:off 5:off 6:off
restorecond 0:off 1:off 2:off 3:off 4:off 5:off 6:off
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
saslauthd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
svnserve 0:off 1:off 2:off 3:off 4:off 5:off 6:off
sysstat 0:off 1:on 2:on 3:on 4:on 5:on 6:off
udev-post 0:off 1:on 2:on 3:on 4:on 5:on 6:off
vnstat 0:off 1:off 2:on 3:on 4:on 5:on 6:off
xinetd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
Показать информацию по сервису httpd
# chkconfig —list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Добавить сервис в автозагрузку
# chkconfig httpd on
или
# chkconfig —level 345 httpd on
Чтобы отключить
# chkconfig httpd off
Также можно воспользоваться утилитой ntsysv
# yum install ntsysv
# ntsysv —level 345
Вывести список сервисов и их состояние
# service —status-all
[ + ] acpid
[ — ] anacron
[ + ] atd
[ + ] avahi-daemon
[ — ] bootlogs
[ ? ] bootmisc.sh
[ ? ] checkfs.sh
[ ? ] checkroot-bootclean.sh
[ — ] checkroot.sh
[ — ] console-setup
[ + ] cron
[ + ] dbus
[ + ] exim4
[ ? ] hdparm
[ — ] hostname.sh
[ ? ] hwclock.sh
[ — ] kbd
[ — ] keyboard-setup
[ — ] keymap.sh
[ ? ] killprocs
[ ? ] kmod
[ — ] motd
[ ? ] mountall-bootclean.sh
[ ? ] mountall.sh
[ ? ] mountdevsubfs.sh
[ ? ] mountkernfs.sh
[ ? ] mountnfs-bootclean.sh
[ ? ] mountnfs.sh
[ ? ] mtab.sh
[ ? ] mysql
[ ? ] networking
[ + ] nginx
[ + ] php5-fpm
[ — ] procps
[ ? ] rc.local
[ — ] rmnologin
[ — ] rsync
[ + ] rsyslog
[ ? ] sendsigs
[ + ] ssh
[ — ] sudo
[ + ] udev
[ ? ] udev-mtab
[ ? ] umountfs
[ ? ] umountnfs.sh
[ ? ] umountroot
[ — ] urandom
- [ + ] — сервис работает в настоящее время [ — ] — сервис в настоящее время не работает
- [ ? ] — вывод статуса для сервиса не предусмотрен
- Перевод man доступен здесь
- Добавить apache2 в автозагрузку
# update-rc.d apache2 defaults
update-rc.d: using dependency based boot sequencing
Удалить apache2 из автозагрузки
# update-rc.d -f apache2 remove
update-rc.d: using dependency based boot sequencing
- Чуть подробнее.
- В Linux у нас определенное количество уровней выполнения (runlevel)
- К примеру MySQL и Apache у нас загружаются на 3 уровне.
- И скорее всего вы хотите, чтобы MySQL стартовал перед Apache, а при перезагрузке сначала должен быть остановлен Apache, а потом MySQL.
- Для этого нам нужно установить start (S) и kill (K) приоритеты.
- Для MySQL нужно поставить приоритет на стадии загрузки, а для Apache приоритет на shutdown
eboot’е.
При старте (S), чем меньше значение приоритета, тем раньше сервис будет запущен.
Сервис со start приоритетом равным 10 будет запущен раньше сервиса с приоритетом равным 20.
При остановке (K) всё наоборот. Сервис с большим приоритетом будет остановлен раньше, чем сервис с меньшим приоритетом.
- Небольшой пример.
- Устанавливаем приоритет start и kill сервису Apache
- Синтаксис следующий
update-rc.d apache2 defaults [START] [KILL]
Итак, сделаем так, чтобы сначала стартовал MySQL, а потом Apache. А при рестарте сначала останавливался Apache, а потом MySQL.
# update-rc.d apache2 defaults 90 90
# update-rc.d mysql defaults 10 10
Так как start и kill приоритеты в данном случае одинаковые, то можно сократить команды следующим образом
# update-rc.d apache2 defaults 90
# update-rc.d mysql defaults 10
# apt-get install sysv-rc-conf
# sysv-rc-conf
via https://fedoraproject.org/wiki/SysVinit_to_Systemd_Cheatsheet/ru
service frobozz start | systemctl start frobozz.service | Используется для разового запуска службы. |
service frobozz stop | systemctl stop frobozz.service | Используется для разовой остановки службы. |
service frobozz restart | systemctl restart frobozz.service | Используется для разового перезапуска службы. |
service frobozz reload | systemctl reload frobozz.service | Если такая возможность поддерживается службой, перезагружает конфигурационный файл, не прерывая процесса. |
service frobozz condrestart | systemctl condrestart frobozz.service | Перезапускает службу, если она запущена. |
service frobozz status | systemctl status frobozz.service | Сообщает, запущена ли служба. |
ls /etc/rc.d/init.d/ | ls /lib/systemd/system/*.service /etc/systemd/system/*.service | Используется для получения списка служб, которые могут быть запущены или остановлены. |
chkconfig frobozz on | systemctl enable frobozz.service | Включает запуск службы после перезагрузки. |
chkconfig frobozz off | systemctl disable frobozz.service | Отключает запуск службы после перезагрузки. |
chkconfig frobozz | systemctl is-enabled frobozz.service | Используется для проверки, будет ли служба запущена после перезагрузки. |
chkconfig frobozz –list | ls /etc/systemd/system/*.wants/frobozz.service | Выдает список уровней загрузки(целей), при которых данная служба будет запущена автоматически. |
chkconfig frobozz –add | Не используется, нет аналога. |
Бонус к бонусу — шпаргалка в pdf, svg, dvi, tex | PDF версия, зеркало rtfm.wiki
linux/autostart.txt · Последние изменения: 2017/03/08 00:13 (внешнее изменение)
Источник: https://rtfm.wiki/linux/autostart
Автозагрузка приложений при запуске Ubuntu
Что такое демон? И чем демоны отличаются от сервисов services (служб, процессов)? Ответ — ничем не отличаются.
Демон (Daemon) — UNIX-служба или просто программа, работающая в фоновом режиме без прямого общения с пользователем. Демоны обычно запускаются во время загрузки системы. В техническом смысле демоном считается процесс, который не имеет управляющего терминала. Чаще всего (но не обязательно) предком демона является init — корневой процесс UNIX.
Исторически, демоны пошли из UNIX-подобных систем. А в ОС семейства Windows — это так называемые службы (Windows services), те самые, которые мы видим в диспетчере задач Windows. Иногда их неофициально называют демонами. Впрочем, и наоборот тоже.
Программа rcconf позволяет настроить запуск демонов: демоны, которые должны стартовать при загрузке системы и демоны, которые должны сидеть и ждать. Это самый простой способ добавлять/удалять службы с автозапуска в Linux.
Программа имеет простой консольный интерфейс и должна запускаться с правами root’а.
- Необходимые для загрузки программы нужно отметить «звёздочкой» с помощью пробела.
- Установка и запуск rcconf:
- sudo apt-get install rcconf
- sudo rcconf
- В некоторых системах при запуске rcconf имела место ошибка
rcconf needs dialog or whiptail.
Разработчики не указали в зависимостях не одну из библиотек, чтобы пользователь сам мог выбрать подходящую. Если у вас возникла такая ошибка, ставим любую из библиотек dialog или whiptail:
sudo apt-get install dialog
Запускаем rcconf
sudo rcconf
Теперь можно отметить сервисы, которые нужно запускать при старте системы. Если вы не знаете, что делает тот или иной сервис, лучше не трогайте их. Один неопытный пользователь хотел ускорить работу системы, убрав ненужные службы. Службы убрал, а после загрузки системы клавиатура и мышь перестали работать. Сам запустить нужные службы он так и не смог.
Как запускать и останавливать службы в Linux?
Представлены 2 самых простых и правильных варианта запуска и остановки служб в linux. Можно использовать любой из них, какой больше нравится. Рассмотрим на примере демона memcached. Естественно, вместо memached может быть имя любой другой службы:
- Вариант 1 запуска memcached:
- sudo service memcached start
- Вариант 2 запуска memcached:
- sudo /etc/init.d/memcached start
Для остановки демонов используются те же самые команды, только вместо start пишем stop. Для большинства демонов применимы команды: start, stop, restart.
Источник: https://jeka.by/post/1017/autoload-ubuntu-rcconf/
Ubuntu, CentOS: Автозагрузка — Убрать/Добавить Сервис в Linux
- Очень часто возникает необходимость убрать или добавить какой-то сервис в автозагрузку в Linux.
- Существую разные init системы, но в Ubuntu и CentOS самыми распространенными являются SysV, Upstart и systemd.
- В зависимости от дистрибутива Linux, поведение сервиса во время загрузки системы может быть настроено с помощью команд systemctl или chkconfig.
- В этом руководстве показано как убрать или добавить сервис в автозагрузку в самых популярных Linux дистрибутивах — Ubuntu и CentOS.
Дельный Совет: Хотите стать DevOps инженером? Тогда вы обязаны знать Git! Это статья поможет реально быстро освоить основы Git! Читать далее →
Ubuntu-18.04
Поддерживаемые релизы: Ubuntu-15.04, 15.10, 16.04, 16.10, 18.04.
systemd — это менеджер системы и сервисов в операционной системе Linux.
Сейчас он, по умолчанию, используется в большинстве Linux дистрибутивах и полностью поддерживается в Ubuntu-15.04 и последующих релизах.
Он поставляется с командной утилитой systemctl, которая, помимо всего прочего, позволяет включать и выключать сервисы во время загрузки системы.
Узнать стоит ли сервис в автозагрузке:
$ systemctl is-enabled SERVICE
Убрать сервис из автозагрузки в Ubuntu-18.04:
$ sudo systemctl disable SERVICE
Добавить сервис в автозагрузку в Ubuntu-18.04:
$ sudo systemctl enable SERVICE
Ubuntu-14.04
Поддерживаемые релизы: Ubuntu-9.10, 10.04, 10.10, 11.04, 11.10, 12.04, 12.10, 13.04, 13.10, 14.04, 14.10.
Узнать стоит ли сервис в автозагрузке:
$ initctl show-config SERVICE
Убрать сервис из автозагрузки в Ubuntu-14.04:
$ echo manual | sudo tee /etc/init/SERVICE.override
Добавить сервис в автозагрузку в Ubuntu-14.04:
$ sudo rm /etc/init/SERVICE.override
CentOS-7
systemd — это менеджер системы и сервисов в операционной системе Linux, который становится новым стандартом для Linux машин.
- В CentOS-7, он заменяет Upstart в качестве init системы по умолчанию.
- systemd поставляется с командной утилитой systemctl, которая является центральной управляющей программной для systemd, которая, помимо всего прочего, умеет включать и выключать сервисы во время загрузки системы.
- Дельный Совет: Узнайте как выключить SELinux временно или на постоянной основе! Читать далее →
- Узнать стоит ли сервис в автозагрузке:
$ systemctl is-enabled SERVICE
Убрать сервис из автозагрузки в CentOS-7:
$ systemctl disable SERVICE
Добавить сервис в автозагрузку в CentOS-7:
$ systemctl enable SERVICE
CentOS-6
Дельный Совет: Узнайте как выключить iptables в CentOS-6! Читать далее →
Узнать стоит ли сервис в автозагрузке:
$ chkconfig —list | grep SERVICE
Убрать сервис из автозагрузки в CentOS-6:
$ chkconfig SERVICE off
Добавить сервис в автозагрузку в CentOS-6:
$ chkconfig SERVICE on
Источник: https://www.shellhacks.com/ru/ubuntu-centos-enable-disable-service-autostart-linux/
LiveStreet
Целью данной статьи является ознакомление с принципами автозагрузки в операционной системе Ubuntu на примере Ubuntu Server 10.
04 LTS, а также демонстрация настройки автозагрузки виртуальной машины, работающей под управлением VirtualBox, и корректное завершение работы последней в автоматическом режиме при выключении Ubuntu Server.
Внимание! Описанный ниже пример не может быть применим к настройке автозагрузки графических приложений для конкретного пользователя системы в настольных версиях Ubuntu. Для этого используйте пункт «Запускаемые приложения» из главного меню Ubuntu.
Что такое автозагрузка?
В первую очередь, это автоматический запуск сервисов/приложений при старте операционной системы. Автозагрузка также может обеспечивать корректное завершение этих служб/приложений при выключении или перезагрузке системы.
Организация автозагрузки в Ubuntu Server.
Разумеется, для того, чтобы правильно запустить/остановить сервис, необходимо описать сценарий с командами для запуска/остановки. Взгляните на содержимое каталога /etc/init.d: он содержит скрипты, которые управляют загрузками/остановками сервисов на вашей машине. Итак, первый, но не последний пункт успешной настройки — это наличие скрипта в /etc/init.d. В скрипте не описывается, когда должен выполняться тот или иной сценарий. Он лишь может принимать параметры start, stop, restart и так далее. Откуда же Ubuntu знает, когда необходимо вызвать скрипт? Ответ кроется в каталогах /etc/rcN.d, где N – это цифра от 0 до 6. В этих каталогах хранятся символические ссылки на скрипты из /etc/init.d. Рассмотрим, что означает каждый каталог, и всё сразу станет понятно: — rc0.d – выполнение скрипта при выключении системы; — rc1.d – выполнение скрипта при запуске системы в однопользовательском режиме; — rc2.d – выполнение скрипта при запуске системы в многопользовательском режиме; — rc3.d – rc5.d – зарезервировано; — rc6.d – выполнение скрипта при перезагрузке системы. Например, если происходит перезагрузка, то будут выполнены все скрипты из каталога /etc/rc6.d, при выключении — из /etc/rc0.d и так далее. Цифра в названии каталога называется уровнем запуска. То есть каталог /etc/rc0.d будет называться нулевым уровнем запуска и так далее. Есть еще один немаловажный момент, который необходимо знать — это очередность выполнения скриптов из каталогов rcN.d. Ведь для правильной организации запуска/остановки работы Ubuntu может потребоваться запускать/останавливать сервисы в определенном порядке. Этот момент решается специальным именованием файлов в каталогах уровней запуска. Файлы имеют следующие имена: [S|K]NN[имя], где [S|K] — это один символ («S» означает, что скрипт запускает сервис, «K» – останавливает), NN – порядковый номер, [имя] – имя файла. Символ «S» или «K» самостоятельно выбирать не придется, так как все скрипты в каталогах rc1.d-rc5.d должны начинаться с символа «S», а в каталогах rc0.d и rc6.d – с символа «K». Число «NN» определяет очередность запуска скриптов, который производится от меньшего к большему. Чем меньше число у скрипта для запуска, тем раньше он будет запущен при старте системы; чем больше число у скрипта остановки сервиса, тем позже он будет выполнен.
При необходимости запуска какой-либо службы или приложения до или после конкретного существующего сервиса просто подсмотрите его порядковый номер в соответствующей директории rcN.d и учитывайте при выборе порядкового номера для своего скрипта.
Ну что ж, где хранить скрипты и как их называть понятно, а вот как его написать?
В каталоге /etc/init.d находится пример скрипта для управления запуском/остановкой сервисов. Это файл /etc/init.d/skeleton, а в примере ниже он будет упрощен. Для создания нового скрипта необходимо сделать копию примера и отредактировать его под свои нужды. Воспользуемся следующей командой: sudo cp /etc/init.d/skeleton /etc/init.d/myscript && vi /etc/init.d/myscript
При создании нового скрипта не забывайте давать ему права на выполнение. Чтобы добавить права на выполнение скрипту, используйте команду sudo chmod +x /etc/init.d/myscript
Скрипт готов. Что дальше?
В некоторых источниках встречаются рекомендации по созданию символических ссылок вручную при помощи команды ln, не смотря на существование специальных утилит. Перед добавлением скрипта утилита проверяет его на валидность, а команда ln создаст ссылку даже при наличие ошибок. Лучше отдать предпочтение специализированным утилитам, таким как update-rc.d, которая поставляется в комплекте с Ubuntu. С её помощью можно добавить новый скрипт в любой уровень загрузки, удалить существующий и так далее. Вот пример использования:sudo update-rc.d myscript start 99 2 3 4 5 . stop 01 0 1 6 . Эта команда добавит новый скрипт «myscript» во все уровни загрузки. Будет выполнен запуск сервиса на уровнях со 2 по 5 с приоритетом 99 (в последнюю очередь) и остановка сервиса на 0, 1 и 6 уровнях с приоритетом 01 (самым первым). Чтобы удалить скрипт из автозагрузки, воспользуйтесь командой:sudo update-rc.d -f myscript remove
Рассмотрим пример настройки автозагрузки.
Задача:
Источник: http://open-life.org/blog/1862.html
Автозапуск программ — Fingercomp’s Playground
Если до версии 1.6 все использовали файл /autorun.lua и были довольны, то теперь ситуация несколько изменилась. Поэтому я опишу все варианты автозапуска программ в этой небольшой заметке.
С версии OpenOS 1.6 файл autorun.lua больше не запускается на rootfs (то есть на файловой системе работающей операционной системы). Вот все пять способов, которые можно использовать для автозапуска программ.
- Модифицировать /init.lua.
Это самый плохой и ужасный вариант из всех. Во-первых, программа будет запускаться до запуска шелла и инициализации библиотек, поэтому возможны краши системы. Во-вторых, если сделать ошибку в файле, то придётся переустанавливать этот файл, что не очень удобно. - Добавить скрипт в /boot.
Это не такой плохой вариант, но здесь также возможны ошибки при использовании стандартных библиотек, так как бутскрипты запускаются не в самом конце загрузки. - Модифицировать /etc/profile.
Это файл, каждая строка которого последовательно исполнаяется при запуске программ. Проблема в том, что при переустановке системы этот файл будет перезаписываться. Поэтому не вариант. - Модифицировать /home/.shrc.
Это самый оптимальный вариант. Но программа будет запускаться при каждом запуске шелла. Если прописать exit в шелле, то программа запустится ещё раз. Если для графических всяких программ это самый лучший вариант, то для одноразовых демонов, которые регистрируют листнеры на ивенты и выходят, вариант не очень хороший, так как тогда листнеры зарегистрируются дважды. - Использовать систему rc.
Подробно о ней рассказывал @LeshaInc: http://computercraft.ru/topic/1679-rc-chto-za-zver-takoi/
Это система, которая позволяет писать своих «демонов» — программ, исполняемых в фоне — и контролировать их из шелла с помощью команд. Графические утилиты так запускать проблематично, потому что возможны всякие артефакты отображения.
Поэтому используйте варианты 4 или 5 в зависимости от программы, которую требуется запустить.
как убрать и добавить программу в автозапуск
В Убунту есть 2 основных уровня автозапуска — в системе инициализации systemd и в рабочем окружении. Для пользовательского софта автозагрузка в Ubuntu может быть настроена в удобной графической утилите. Добавить в автозапуск можно программу или собственный скрипт.
Автозагрузка в Ubuntu
Актуальная Ubuntu 18.04 по умолчанию в качестве рабочего окружения использует GnomeShell. Для настройки автозапуска в этой версии ОС нужно:
- Нажать на кнопку «Обзор» в левом верхнем углу экрана.
- Начать вводить в строку поиска «Автоматически запускаемые приложения» и запустить найденную утилиту.
- Далее кликнуть по кнопке «Добавить», чтобы внести желаемое приложение в автозагрузку.
- Заполнить поля «Имя» (название программы — как удобно) и «Команда» (та, которую вводят в консоли для запуска этого софта). Поле «описание» необязательное, сюда разрешено вписать любой комментарий.
Пример добавления Transmission в автозагрузку в Линукс показан на скриншоте: - Нажать кнопку «Добавить».
Совет! Чтобы не ошибиться с правильностью команды, нужно установить утилиту «Главное меню» из UbuntuSoftwareCenter.
В ней выбрать интересующий пункт и открыть его свойства. Правильная команда копируется из одноименной строки.
Запуск приложений в Ubuntu, присутствующих в списке и помеченных галочкой, будет происходить при каждом старте ОС. Все это приложения данного пользователя, системные программы и сервисы, утилита не отображает. В предыдущих версиях операционной системы с графической оболочкой Unity утилита для настройки автозагрузки также ищется поиском по меню Dash или открывается с помощью команды в терминале:
gnome-session-properties.
Как добавить скрипт в автозагрузку Ubuntu
Кроме конкретного софта, добавить в автозагрузку Linux легко и самописный скрипт, чтобы оптимизировать работу за компьютером. Для этого необходимо:
- Сделать скрипт исполняемым с помощью команды:
sudochmodugo+x /home/user/script.sh
(где user — имя пользователя, а script — название скрипта, но путь до вашего файла .sh может отличаться: его нужно прописать полностью, иначе скрипт не запустится).
- Открыть «Автоматически запускаемые приложения» и нажать «Добавить».
- Ввести имя скрипта, а в качестве команды — полное название с путем до файла, например, /home/user/script.sh.
- Кликнуть по «Добавить».
Есть другой, классический, но считающийся устаревшим способ настроить автозапуск скрипта в Ubuntu. Для его выполнения нужно:
- Открыть терминал и выполнить команду:
sudonano /etc/rc.local
- Над строкой exit 0 прописать название и путь до скрипта.
- Сохранить изменение с помощью сочетания клавиш Ctrl+O, подтвердить клавишей Enter.
Этот способ подойдет и для автозагрузки на UbuntuServer, где нет графики.
Отсрочка автозапуска программ в Ubuntu
Если программ в автозагрузке Убунту очень много, их необходимо подгружать в определенном порядке или запускать спустя какое-то время после загрузки системы — поможет функция отсрочки. Для ее активации используется unix-утилита sleep. Воспользоваться возможностями этого инструмента можно в уже знакомой программе «Автоматически запускаемые приложения». Для этого нужно:
- Открыть окно параметров запускаемых приложений.
- Выделить курсором программу, автозапуск которой необходимо отсрочить, и воспользоваться кнопкой «Изменить».
- В строке «Команда» перед имеющеюся записью внести:
sleep 120,
где цифра после слова «спать» равна количеству секунд, которое приложение бездействует сразу после старта системы, перед тем как запуститься. Между данной формулой, в конце которой обязательна точка с запятой, и командой на запуск приложения, должен быть пробел.
В приведенном примере отложенной автозагрузки программ в Ubuntu приложение остается в состоянии «сна» 2 минуты, прежде чем открыться. Например, запуск через полчаса после старта ОС будет выглядеть как sleep 3h «имя программы». Пример, в котором Transmission запускается через 1 час:
sleep 1h; transmission-gtk %U
Аналогичным образом можно добавить в автозагрузку в Linux отсроченное выполнение пользовательского скрипта или запуск медиафайла.
Удаление из автозапуска Ubuntu
Чтобы убрать софт из автозагрузки Ubuntu, можно воспользоваться одним из 2 способов: через «Автоматически запускаемые приложения» или вручную. В первом случае достаточно запустить утилиту, выделить нужную программу и нажать «Удалить». Простое снятие галочки отключается программа, и она не будет запускаться при старте системы.
Ручной способ подразумевает использование папки autostart в Ubuntu. Она расположена по адресу /home/имя пользователя/.config/autostart/ (чтобы увидеть эту скрытую папку, следует открыть домашний каталог в файловом менеджере и нажать одновременно клавиши Ctrl+H). В ней лежат файлы с расширением .desktop для каждой программы из автозапуска, формирующиеся автоматически при добавлении через графическую утилиту. Достаточно удалить файл, чтобы программа больше не открывалась при включении компьютера.
Заключение
Автозагрузка в Ubuntu имеет множество способов тонкой настройки. Ее возможности трудно охватить. Грамотное использование этого инструмента делает ОС Linux практичнее в повседневных задачах.
Как автоматически запускать программу при запуске Linux
Есть несколько этапов запуска Linux , и вы можете установить свой собственный сценарий автозапуска или программу на любом из этапов, где это может быть отдельная команда, цепочка команд или исполняемый сценарий оболочки. Однако могут быть некоторые различия в процедуре запуска между различными дистрибутивами и версиями Linux .
Современный Linux сначала загрузится в systemd , в то время как более старые версии Linux используют System V init .Оба метода будут запускать cron и rc.local перед загрузкой среды рабочего стола, такой как GNOME или KDE . С другой стороны, серверные дистрибутивы Linux будут запускать оболочку по умолчанию, такую как Bash , после того, как пользователь вошел в систему с консоли, вместо загрузки среды рабочего стола.
Методы автоматического запуска программы при запуске Linux:
Автоматически запускать программу при запуске Linux через systemd
systemd — это стандартный системный и сервисный менеджер в современной Linux .Помимо прочего, он отвечает за выполнение программ и управление ими во время запуска Linux . Совместимые программы будут предоставлять служебных единиц файлов, используемых systemd для управления выполнением программы.
Вы можете настроить systemd для автоматического запуска программ во время запуска Linux , выполнив следующие действия:
- Проверьте, существует ли сервисный блок для вашей программы (необязательно).
$ sudo systemctl list-unit-files --type = сервис [sudo] пароль для пользователя: СОСТОЯНИЕ ФАЙЛА учетные записи-демон.услуга включена apparmor.service включен apport-autoreport.service статический apport-forward @ .service статический apport.service сгенерирован apt-daily-upgrade.service статический apt-daily.service статический atd.service включен autovt @ .service включен blk-availability.service включен bootlogd.service замаскирован загрузочные журналы.служба замаскирована bootmisc.service замаскирован checkfs.service замаскирован checkroot-bootclean.service замаскирован checkroot.service замаскирован cloud-config.service включен cloud-final.service включен Cloud-init-local.service включен Cloud-init.service включен console-getty.service отключен ##### вырезано #####
- Проверьте, включен ли сервисный блок (опция).
$ sudo systemctl включен mysql отключен
включен служебный блок выполняется во время загрузки
- Включите сервисную единицу, которую вы хотите запустить при запуске.
$ sudo systemctl включить mysql Синхронизация состояния mysql.service со сценарием службы SysV с помощью / lib / systemd / systemd-sysv-install. Выполнение: / lib / systemd / systemd-sysv-install включить mysql Создана символическая ссылка /etc/systemd/system/multi-user.target.wants/mysql.service → / lib / systemd / system / mysql.услуга.
- Проверьте, включен ли сервисный блок для подтверждения (необязательно).
$ sudo systemctl включен mysql включен
Автоматически запускать программу при запуске Linux через cron
cron — это демон для выполнения запланированных команд. Команды хранятся в таблице заданий cron или crontab и уникальны для каждого пользователя в системе. Он запускается во время загрузки системы либо systemd , либо System V init , и вы можете запланировать выполнение задания или программы прямо во время загрузки системы, выполнив следующие действия:
- Откройте редактор crontab по умолчанию.
$ crontab -e
Вам необходимо выбрать редактор для crontab , если это первый раз, когда пользователь использует команду.
$ crontab -e нет crontab для пользователя - используется пустой Выберите редактора. Чтобы изменить позже, запустите "select-editor". 1. / bin / nano <---- самый простой 2. /usr/bin/vim.basic 3. / bin / ed Выберите 1-3 [1]:
crontab будет создан для пользователя, выполняющего команду, и будет выполняться с использованием привилегий пользователя.Если вам нужно, чтобы ваша программа запускалась как пользователь root , запустите crontab -e как сам пользователь root .
- Добавьте строку, начинающуюся с @reboot .
# команда m h dom mon dow @reboot
@reboot определяет задание, которое будет выполняться во время загрузки системы.
- Вставьте команду для запуска вашей программы после @reboot .
@reboot / sbin / ip адрес | grep inet \ | хвост -n1 | awk '{print $ 2}'> / etc / issue && echo "" >> / etc / issue
По возможности используйте полный путь к программам и записывайте команды в одну строку.
- Сохраните файл, чтобы установить его в crontab .
$ crontab -e crontab: установка нового crontab $
Файл сохраняется в / var / spool / crontab /
- Проверьте правильность настройки crontab (необязательно).
$ crontab -l # m h dom mon dow команда @reboot / sbin / ip адрес | grep inet \ | хвост -n1 | awk '{print $ 2}'> / etc / issue && echo "" >> / etc / issue
Автоматически запускать программу при запуске Linux через rc.местный
rc.local является наследием системы System V init . Это последний сценарий, который нужно выполнить перед переходом к экрану входа в систему для среды рабочего стола или к приглашению входа в систему на терминале. Обычно это сценарий оболочки Bash , и вы можете запускать из него все, что угодно.
Вы можете настроить свой сценарий rc.local , выполнив следующие действия:
- Откройте или создайте файл /etc/rc.local , если он не существует, используя ваш любимый редактор в качестве корневого пользователя .
$ sudo vi /etc/rc.local
- Добавьте в файл код-заполнитель.
#! / Bin / bash выход 0
Он должен начинаться с интерпретатора ( / bin / bash ) и заканчиваться кодом выхода ( 0 для успеха )
- При необходимости добавьте команду и логику в файл.
#! / Bin / bash / sbin / ip адрес | grep inet \ | хвост -n1 | awk '{print $ 2}'> / etc / issue echo "" >> / etc / issue выход 0
- Сделать файл исполняемым.
$ sudo chmod a + x /etc/rc.local
Файл будет выполнен как пользователь root во время загрузки системы.
Автоматически запускать программу при запуске GNOME
GNOME - это среда рабочего стола по умолчанию для дистрибутивов Linux , таких как Ubuntu и Red Hat . GNOME можно настроить для запуска программ, когда пользователь входит в систему, и его можно настроить, следуя приведенной ниже статье:
Автоматически запускать программу при запуске KDE
KDE - еще одна популярная среда рабочего стола для Linux , используемая по умолчанию в Kubuntu и openSUSE .Его можно легко настроить для запуска программ, когда пользователь входит в систему, как подробно описано в следующей статье:
Автоматически запускать программу в новом сеансе Bash
При запуске сеанса терминала будет создана новая программа оболочки. Bash - это оболочка по умолчанию для большинства дистрибутивов Linux , и при запуске она будет искать следующие файлы в определенном порядке и запускать их.
/ etc / profile
~ /.bash_profile
~ / .bash_login
~ /. Профиль
Эти файлы содержат команды и логику для установки правильных переменных среды и запуска необходимых программ на языке Bash . Он также настроен на нормальное выполнение других файлов, таких как / etc / bashrc , /etc/bash.bashrc и ~ / .bashrc .
Вы можете отредактировать любой из этих файлов для запуска вашей программы при запуске сеанса Bash .Ниже приведена часть типичного файла ~ / .bashrc :
PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ [\ 033 [01; 32m \] \ u @ \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ w » \ [\ 033 [00m \] \ $ ' ПУТЬ = / home / user / bin: $ PATH РЕДАКТОР экспорта = / usr / bin / vim псевдоним ll = "ls -l"
Как: запускать программу в Linux автоматически при загрузке: SkySilk Cloud Support
СОДЕРЖАНИЕ
Если у вас есть сервер Linux и вам необходимо настроить службу или программу для автоматического запуска при загрузке, это руководство продемонстрирует, как это сделать.Это руководство будет полезно тем, кто запускает критически важные службы на своих машинах с Linux. Вы узнаете
, как обеспечить автоматический запуск этих служб даже после незапланированной перезагрузки.
Как запустить программу в Linux автоматически при загрузкеМы будем использовать systemd для этой задачи. Сначала мы создадим образец сценария. Затем мы создадим системный блок, который ссылается на наш пример скрипта. Наконец, мы скажем systemd автоматически запускать наш скрипт (служебный модуль) при запуске системы.
Начните с входа на свой VPS через SSH. Вы можете следовать этому руководству , чтобы помочь вам использовать SSH в вашем SkySilk VPS
Создайте образец сценария или программу, которую мы хотим автоматически запускать при загрузкеСоздайте следующий сценарий в /usr/sbin/testscript.sh используя ваш любимый текстовый редактор (например, nano):
#! / bin / bash d = $ (дата +% Y-% m-% d-% s) echo "$ d" >> ~ / "$ d" .log exit 0
Убедитесь, что сценарий исполняется:
chmod + x / usr / sbin / testscript.shСоздание системного модуля (также известного как служба)
Теперь мы создадим системный модуль, который ссылается на приведенный выше тестовый сценарий. Этот системный блок - это то, как systemd узнает, что нужно запустить тестовый скрипт при загрузке системы.
Создайте следующий файл в /etc/systemd/system/test.service. Убедитесь, что вы ссылаетесь на сценарий, который вы создали выше, и что вы сохранили системный модуль с расширением «.service».
[Единица] Description = Описание вашей индивидуальной услуги находится здесь После = сеть.цель [Услуга] Тип = простой ExecStart = / bin / bash /usr/sbin/testscript.sh TimeoutStartSec = 0 [Установить] WantedBy = default.targetНастройте службу для автоматического запуска при загрузке.
Подтвердите, что ваша тестовая служба была успешно создана:
systemctl --all | grep test.service
Запустите службу:
systemctl start test.serviceПротестируйте службу с помощью перезагрузки!
Выполните тестовую перезагрузку сервера. Настроенная вами служба должна автоматически запускаться при загрузке сервера. На этом все готово с настройкой!
Присоединяйтесь к нашему приватному чату Discord, чтобы общаться с другими проверенными пользователями SkySilk, а также получить помощь сообщества от других проверенных пользователей SkySilk: https: // invite.gg / SkySilk
НАЖМИТЕ ДЛЯ РАЗВЕРТЫВАНИЯ UBUNTU LINUX VPS
linux — Как запустить приложение автоматически при загрузке
Вот отрывок из http://www.debian-administration.org/articles/28, который, кажется, отвечает на ваш вопрос.
Примечание. В приведенном ниже примере сценария просто добавьте вызов в раздел « start)
» для фактического запуска вашей программы.
Вы можете проверить работоспособность скрипта без перезагрузки системы: вызовите его, указав полный путь и задав ему параметр « start
» или « stop
»
Вот и:
Debian использует систему инициализации, подобную Sys-V, для выполнения команд при изменении уровня запуска системы — например, во время загрузки и завершения работы.
Если вы хотите добавить новую службу для запуска при загрузке машины, вам следует добавить необходимый сценарий в каталог /etc/init.d/
. Многие из сценариев, уже имеющихся в этом каталоге, дадут вам пример того, что вы можете делать.
Вот очень простой сценарий, который разделен на две части: код, который выполняется всегда, и код, который запускается при вызове с помощью «start» или «stop».
#! / bin / sh
# /etc/init.d/blah
#
# Некоторые вещи, которые работают всегда
прикоснуться / var / lock / blah
# Выполнять определенные функции по запросу системы
case "$ 1" в
Начало)
echo "Запуск скрипта мля"
echo "Здесь можно сделать больше"
;;
останавливаться)
echo "Остановка скрипта мля"
echo "Здесь можно сделать больше"
;;
*)
echo "Использование: / etc / init.д / бла {начало | стоп} "
выход 1
;;
esac
выход 0
После сохранения файла в правильном месте убедитесь, что он исполняемый, запустив « chmod 755 /etc/init.d/blah
».
Затем вам нужно добавить соответствующие символические ссылки, чтобы сценарий запускался при выходе из строя или запуске системы.
Самый простой способ сделать это — использовать специфичную для Debian команду update-rc.d
:
root @ skx: ~ # update-rc.d blah по умолчанию
Добавление запуска системы для /etc/init.d/blah ...
/etc/rc0.d/K20blah -> ../init.d/blah
/etc/rc1.d/K20blah -> ../init.d/blah
/etc/rc6.d/K20blah -> ../init.d/blah
/etc/rc2.d/S20blah -> ../init.d/blah
/etc/rc3.d/S20blah -> ../init.d/blah
/etc/rc4.d/S20blah -> ../init.d/blah
/etc/rc5.d/S20blah -> ../init.d/blah
Как автоматически запускать программу при загрузке в Debian 7 (wheezy)
Последнее обновление 17 ноября 2020 г., Дэн Нанни
Если вы используете Debian 7 ( wheezy ) или более раннюю версию и хотите настроить свою систему Debian на автоматический запуск определенной программы при загрузке, вы можете использовать систему Debian init
.В качестве первого процесса, запускаемого при загрузке ядра, система init
управляет различными службами запуска на разных уровнях выполнения.
В этом руководстве описывается, как настроить автоматический запуск программы в Debian 7 или более ранней версии (например, Debian wheezy, squeeze и т. Д.).
В Debian 7 или более ранней версии каталог с именем /etc/init.d
содержит список сценариев, которые выполняются процессом init
во время запуска и завершения работы. Таким образом, чтобы автоматически запускать определенную программу или скрипт при запуске, вы можете создать соответствующий файл init.d
скрипт.
Ниже приведен шаблон сценария init.d
для гипотетической службы под названием foobar
. Типичный сценарий init.d
запускается с такими аргументами, как start
, stop
, restart
, pause
и т. Д. Чтобы сценарий init.d
был запущен или остановлен с помощью init
во время запуска и выключения, сценарий должен обрабатывать по крайней мере start
и stop
аргументов.
$ судо vi /etc/init.d/foobar
#! / bin / sh # /etc/init.d/foobar # Следующая часть всегда выполняется. echo "Эта часть всегда выполняется" # Следующая часть выполняет определенные функции в зависимости от аргументов. case "$ 1" в Начало) echo "Запуск foobar" эхо "фубар жив" ;; останавливаться) echo "Остановка фубара" эхо "фубар мертв" ;; *) echo "Использование: /etc/init.d/foobar {start | stop}" выход 1 ;; esac выход 0
Наконец, сделайте init.d исполняемый файл сценария
и добавьте сценарий init.d
на уровень запуска по умолчанию, чтобы сценарий можно было вызывать во время загрузки (а также во время выключения).
$ sudo chmod 755 /etc/init.d/foobar $ sudo update-rc.d значения по умолчанию foobar
Позже, если вы решите удалить сценарий init.d из списка служб запуска, вы можете просто запустить следующее.
$ sudo update-rc.d -f foobar remove
Как запускать приложения автоматически при загрузке Linux
Вы загружаете приложения вручную каждый раз при включении компьютера? Разве вы не предпочли бы, чтобы они загружались автоматически? Вот как автоматически запускать приложения в Linux.
Запуск приложений при загрузке в Linux довольно легко сделать, но методы меняются в зависимости от используемого вами дистрибутива и среды рабочего стола. Эта статья покажет вам, как это сделать во всех основных средах Linux. Следующие ниже наборы инструкций не будут актуальными для всех, поэтому, пожалуйста, перейдите к той части, которая наиболее актуальна для вашей системы. Наборы инструкций включают: Unity (Ubuntu), Cinnamon (Linux Mint), GNOME, KDE, MATE, LXDE, XFCE, Moksha (Bodhi Linux), Budgie (Solus) и Pantheon (elementaryOS).
Преимущества автозапуска приложений
Автозапуск приложений, также известный как Автозапуск приложений, — это процесс настройки определенных программ на автоматический запуск при включении компьютера. Это отличная экономия времени, если вы запускаете одни и те же приложения каждый день при первой загрузке компьютера. Для некоторых пользователей это, возможно, более полезно для запуска фоновых приложений, поэтому вы всегда можете иметь определенные инструменты, доступные для вас.Отличным примером фонового приложения для запуска является KDE Connect или индикатор KDE Connect для синхронизации вашего компьютера с телефоном Android.
Процесс настройки автоматического запуска приложений в Linux немного сбивает с толку, потому что каждый дистрибутив (дистрибутив) и среда рабочего стола (DE) делают это по-разному. В некоторых случаях процесс очень прост, когда вы просто выбираете приложение из списка того, что вы установили, но в других случаях вам нужно знать точные команды, используемые для запуска приложения.
Unity, стандартная среда Ubuntu
Ubuntu, вероятно, является наиболее часто предлагаемым дистрибутивом для новичков, поэтому странно, что эта функция не удобна для пользователя в Unity. К сожалению, автозапуск приложений недоступен в системных настройках; вместо этого вам потребуется поискать в Dash инструмент Startup Applications .
В инструменте «Запуск приложений» нажмите кнопку « Добавить » в правой части окна.Ubuntu не обеспечивает удобство выбора приложений, поэтому у вас есть два варианта продолжения: 1.) Введите имя приложения и команду , чтобы запустить его (если вы это знаете) или 2.) Щелкните Нажмите кнопку «Обзор », на боковой панели выберите Компьютер и перейдите в папку / usr / bin . Папка / usr / bin содержит двоичный файл для запуска всех программ, установленных на вашем компьютере, поэтому для некоторых это может быть сложно, посмотрите видео ниже для руководства.
В видео выше я продемонстрировал, как искать приложение: вы переходите в папку / usr / bin и просто начинаете вводить первые несколько букв двоичного имени.
Cinnamon, стандартная среда Linux Mint
Метод автозапуска приложений Linux Mint представляет собой хорошее сочетание простого подхода GNOME, технического подхода Ubuntu и некоторых дополнительных настраиваемых функций. В меню «Монетный двор» откройте Системные настройки и выберите Запуск приложений в разделе «Настройки».Внизу окна нажмите Добавить , а затем Выбрать приложение . В следующем окне вы можете прокрутить список и выбрать нужное приложение или просто начать вводить , чтобы открыть скрытую функцию поиска. Наконец, нажмите Добавить приложение , чтобы добавить его в список.
После добавления приложения вы увидите кнопки включения / выключения и задержки вместе с записью. Настройку задержки можно использовать по-разному; Я использую его, чтобы установить порядок приложений.Чтобы изменить задержку, выберите приложение и нажмите Изменить внизу окна. В следующем окне используйте кнопки Минус (-) или Плюс (+) , чтобы изменить число, или просто введите число . Время от времени Linux Mint уделяет внимание деталям, что часто является одной из причин, по которой некоторые считают его убийцей Ubuntu.
GNOME через Ubuntu GNOME
GNOME не предоставляет функцию по умолчанию для автоматического запуска приложений, но инструмент GNOME Tweak Tool исправил это.Инструмент GNOME Tweak Tool доступен по умолчанию почти во всех дистрибутивах на основе GNOME, поэтому вам не нужно его устанавливать. В демонстрационном видео я использовал Ubuntu GNOME, но инструкции актуальны для всех пользователей GNOME, поскольку инструмент GNOME Tweak Tool доступен повсеместно. Хотя, если вы используете Ubuntu GNOME, вы также можете найти инструмент Ubuntu в обзоре GNOME.
Если щелкнуть Activites в верхнем левом углу (или нажать клавишу Super, также известную как Windows), откроется Обзор GNOME.Используя обзорный поиск, введите tweak и запустите Tweak Tool. Вы также можете прокручивать сетку приложений, если хотите. Щелкните Startup Applications на левой боковой панели, а затем большую кнопку Plus , чтобы открыть новое диалоговое окно. Вы можете выбрать приложение, прокручивая список, или начать вводить имя, чтобы открыть функцию скрытого поиска.
KDE через Kubuntu
Проект KDE в настоящее время переходит на свою последнюю версию, Plasma 5, которая является версией Kubuntu 15.10 вариантов использования показаны на видео ниже. Процесс управления запускаемыми приложениями в KDE идентичен по функциональности как в Plasma 5, так и в KDE4, поэтому видео демонстрирует только Plasma 5.
В средстве запуска приложений перейдите в раздел Компьютер и откройте приложение Системные настройки . Запуск и завершение работы , в разделе «Рабочая область», вы можете управлять записями. В Autostart , выбранном по умолчанию, щелкните Добавить программу для прокрутки категоризированного списка приложений или для поиска приложения.Щелкнув OK для продолжения, вы увидите сводку того, что вы собираетесь добавить, щелкните OK в этом окне, чтобы завершить процесс. Plasma также позволяет автоматически запускать пользовательские сценарии, поэтому для этого щелкните Добавить сценарий , щелкните квадрат и перейдите к своему сценарию.
MATE через Ubuntu MATE
Откройте Центр управления из меню System в верхнем левом углу экрана и оттуда щелкните Startup Applications .Если вы используете Ubuntu MATE, возможно, вы изменили внешний вид системы с помощью переключателя интерфейсов. В таком случае способ открытия Центра управления может быть другим для вас.
В дистрибутивах на основеMATE используется тот же инструмент, что и в Ubuntu (с Unity) для управления автозапуском приложений, поэтому процесс такой же. В инструменте «Запуск приложений» нажмите кнопку « Добавить » в правой части окна. Введите имя приложения и команду для его запуска, если вы это знаете, или нажмите Обзор , выберите Компьютер на боковой панели и выберите приложение в папке / usr / bin .
LXDE через Lubuntu
Решение LXDE для автоматического запуска приложений несколько скрыто внутри другого инструмента, настроек LXSession. В главном меню LXDE перейдите к Приложение и настройки > Настройки > Приложения по умолчанию для LXSession . Инструмент Autostart , выбираемый на левой боковой панели, в LXDE довольно ограничен, поэтому вам нужно знать команду приложения, которое вы хотите добавить.
LXDE не предоставляет возможности для поиска двоичных файлов в инструменте автозапуска, но Lubuntu предоставила решение этой проблемы через PCManFM (файловый менеджер). В PCManFM запись Applications размещает на левой боковой панели, представляет собой набор категорий. Просматривайте категории, пока не найдете приложение, щелкните приложение правой кнопкой мыши и выберите Properties из контекстного меню. Щелкните вкладку Desktop Entry в окне свойств, скопируйте команду в поле Command, вставьте ее в поле Autostart в LXSession и, наконец, щелкните + Add .
XFCE через Xubuntu
XFCE использует тот же инструмент Startup Application для добавления приложений, которые используют Ubuntu и MATE, но управление списком осуществляется с помощью инструмента настроек под названием Session и Startup .
В меню Whisker перейдите в категорию Settings и откройте инструмент Session and Startup . В разделе «Сеанс и запуск» перейдите на вкладку « Application Autostart » для автозапуска записей и оттуда нажмите «Добавить » в левом нижнем углу.На этом этапе вам будет представлен тот же инструмент запуска, который используют Ubuntu и MATE. Нажмите кнопку Добавить в правой части окна. Введите имя приложения и команду для его запуска, если вы это знаете, или нажмите Обзор , выберите Компьютер на боковой панели и выберите приложение в папке / usr / bin .
Moksha через Bodhi Linux
Moksha — это легкая сфокусированная среда рабочего стола, созданная на основе Enlightenment, созданного проектом Bodhi Linux.Процесс автозапуска приложений Moksha кажется уникальной реализацией рабочего стола Moksha.
В меню Moksha перейдите к Настройки > Все > Приложения > Запуск приложений . Вкладка System предназначена для управления системными утилитами в последовательности запуска, вкладка Applications предназначена для управления приложениями, а вкладка Order позволяет контролировать порядок записей при запуске.Щелкните вкладку Applications , выберите приложение из списка и щелкните Добавить , чтобы добавить его в последовательность запуска. Похоже, что нет способа добавить пользовательские команды или сценарии в инструмент, поэтому, если утилита или приложение не будут найдены автоматически, может потребоваться дополнительное исследование для их добавления. Если вы уже знаете, как это сделать, напишите в комментариях ниже.
Budgie через Solus Project
Проект Solus разработал потрясающую среду рабочего стола, которая является форком GNOME 3 и называется Budgie.Поскольку Budgie является ответвлением GNOME, запускаемые приложения управляются в Budgie / Solus с помощью GNOME Tweak Tool.
Введите tweak в верхней части меню Budgie и откройте инструмент Tweak Tool . Щелкните Startup Applications на левой боковой панели, а затем большую кнопку Plus , чтобы открыть новое диалоговое окно. Вы можете выбрать приложение, прокручивая список, или начните вводить имя , чтобы открыть функцию скрытого поиска.
Pantheon через elementaryOS
Pantheon — это среда рабочего стола на основе GTK +, созданная elementaryOS, и хотя Pantheon похож на GNOME 3, это не форк GNOME, поэтому управление автозапуском приложений похоже, но также немного отличается .
В правом верхнем углу панели Wingpanel выберите Системные настройки в системном меню (значок питания). Выберите Applications > Startup в системных настройках, чтобы перейти к средству запуска.Вы увидите кнопки Плюс (+), и Минус (-) в нижнем левом углу инструмента запуска. Выберите приложение из списка, найдите приложение вверху списка или введите пользовательскую команду внизу списка. После того, как вы добавили элементы в список, вы можете отключить их с помощью переключателя активности или удалить их с помощью кнопки «Минус» (-) внизу.
Облегчение жизни в Linux с помощью автоматизации
Какие приложения запускаются автоматически при загрузке компьютера? У вас есть какие-либо вопросы о процессе для любой из сред рабочего стола? Дайте нам знать в комментариях ниже.
26 замечательных применений Raspberry PiС какого проекта Raspberry Pi начать? Вот наш обзор лучших проектов и проектов Raspberry Pi!
Читать далее
Об авторе Майкл Таннелл (Опубликовано 3 статьи) Более От Майкла ТаннеллаПодпишитесь на нашу рассылку новостей
Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!
Нажмите здесь, чтобы подписаться
Как автоматически запускать программы в KDE Plasma 5
Нужно автоматически запускать программы в KDE Plasma 5 при входе в систему? Существует несколько способов успешного автоматического запуска программ при входе в среду рабочего стола Plasma 5.В этом руководстве мы поговорим обо всех способах этого сделать.
Автозапуск программ из графического интерфейса
KDE Plasma 5 имеет отличный инструмент с графическим интерфейсом пользователя, который пользователи могут использовать для настройки автоматического запуска приложений при входе в систему. Чтобы получить доступ к этому инструменту, вам нужно перейти в область системных настроек Plasma.
Доступ к области системных настроек начинается с нажатия Win на клавиатуре и ввода «Системные настройки». Затем в результатах поиска щелкните результат приложения с надписью «Инструменты настройки для вашего компьютера.”
Открыв область системных настроек, просмотрите список слева, чтобы найти «Рабочее пространство». В этой области отсортируйте и нажмите на «Запуск и завершение работы».
В разделе «Запуск и выключение» рабочего пространства приложения «Параметры системы» найдите «Автозапуск» и выберите его с помощью мыши, чтобы получить доступ к его настройкам.
Чтобы настроить автоматический запуск программы во время входа в KDE Plasma 5, щелкните мышью по кнопке «Добавить программу». Оттуда просмотрите категории приложений для программы, которую вы хотите запускать автоматически, и нажмите «ОК», чтобы добавить ее в качестве записи для запуска.Повторите процесс столько раз, сколько необходимо, чтобы все ваши программы автоматически открывались при входе в систему.
Готово ли добавлять программы в автоматический запуск для KDE Plasma 5? Завершите процесс, закрыв приложение. Он автоматически применит внесенные изменения.
Автоматический запуск сценариев Bash с графическим интерфейсом пользователя
Одной из отличных особенностей KDE Plasma 5 по сравнению с другими средами рабочего стола Linux является то, что инструмент Autostart GUI позволяет пользователям автоматически запускать сценарии Bash во время входа в систему.
Для этого перейдите в раздел «Автозапуск» в Системных настройках (Системные настройки> Рабочее пространство> Запуск и выключение> Автозапуск). Затем в разделе «Автозапуск» найдите кнопку «Добавить сценарий» и щелкните по ней мышью.
После нажатия кнопки «Добавить сценарий» появится окно графического интерфейса пользователя. В этом окне добавьте точное местоположение сценария Bash, чтобы KDE Plasma запустила его правильно.
Примечание: снимайте флажок с кнопки «Создать как символическую ссылку», только если вы знаете, что такое символическая ссылка.В противном случае оставьте флажок установленным.
После того, как путь к сценарию Bash загружен в окно графического интерфейса пользователя, нажмите кнопку «ОК», чтобы добавить его в качестве начальной записи. Повторите этот процесс столько раз, сколько хотите, чтобы все ваши скрипты запускались при запуске.
По завершении добавления записей запуска сценария Bash закройте окно автозапуска. Все изменения автоматически вступят в силу.
Удаление программы / скрипта из автозапуска с графическим интерфейсом
Устали от автоматического запуска программ или скриптов? Решите, что вы не хотите, чтобы что-либо работало, когда вы входите в систему? Вот что надо делать.Пройдите в раздел «Автозапуск» в «Системных настройках» («Системные настройки»> «Рабочая область»> «Запуск и выключение»> «Автозапуск»).
В области автозапуска просмотрите список запускаемых программ и сценариев. Пройдите к записи, которую вы хотите предотвратить от загрузки, и выберите ее с помощью мыши. После этого нажмите кнопку «Удалить», чтобы отключить его.
Когда все записи будут удалены, закройте окно автозапуска. Изменения должны автоматически вступить в силу.
Автозапуск программ через Терминал
Использование графического интерфейса — не единственный способ настроить KDE Plasma 5 для автоматической загрузки программ при входе в систему. Если вам не нравится маршрут с графическим интерфейсом, можно настроить автоматический запуск через командную строку.
Чтобы настроить автоматический запуск через терминал в KDE Plasma 5, вы должны сначала переместить сеанс командной строки из домашней папки (~) в / usr / share / applications /, так как именно здесь Linux хранит все ярлыки программ. .
cd / usr / share / applications /
Используя команду ls , перечислите все элементы в каталоге / usr / share / applications .
лс
Или, если у вас возникли проблемы с сортировкой огромного списка файлов ярлыков, попробуйте:
ls | grep 'имя программы'
После того, как вы нашли имя программы, возьмите его и вставьте в команду CP ниже, чтобы создать новую запись для запуска.
mkdir -p ~ / .config / автозапуск /
cp имя программы.рабочий стол ~ / .config / autostart /
Обновите права доступа к файлу, чтобы убедиться, что KDE правильно обрабатывает ярлык приложения.
sudo chmod + x ~ / .config / autostart / имя_программы.desktop
Повторите этот процесс столько раз, сколько хотите, чтобы создать записи запуска для KDE через командную строку.
Удаление автоматического запуска программы в терминале
Чтобы удалить запись об автоматическом запуске из KDE Plasma в командной строке, необходимо переместить сеанс терминала из домашнего каталога (~) в каталог ~ /.Папка config / autostart / .
компакт-диск ~ / .config / autostart
Внутри папки запустите команду ls , чтобы просмотреть элементы в папке.
лс
Взгляните на содержимое этого каталога и вставьте названия приложений, которые вы хотите удалить, в команду rm ниже.
rm имя программы.desktop
Автоматический запуск программы в Linux
В этом руководстве объясняется, как автоматически запустить программу, работающую на Raspberry Pi или другом компьютере с Linux.
Во-первых, зачем вам запускать программу или приложение автоматически? Уже существуют десятки или даже сотни программ или демонов, запускающих компьютер. Это может быть поддержание правильного времени на вашем компьютере, обработка запросов на печать, получение сетевых запросов, обработка графического интерфейса или даже запуск других программ для работы по расписанию. Если вам нравятся проекты производителей физических вычислений (в этом случае вы можете посмотреть мой список проектов производителей), то довольно часто вы хотите, чтобы они запускались автоматически, чтобы они могли запускать программу без необходимости взаимодействия с пользователем, или чтобы они запускают программу, с которой может взаимодействовать пользователь.
Это руководство будет основано на systemd и файлах рабочего стола с автозапуском. В настоящее время большинство дистрибутивов Linux реализуют их, но некоторые этого не делают. Возможно, вам потребуется проверить свой конкретный дистрибутив.
Есть и другие способы заставить программы запускаться автоматически, но это два, которые, как правило, хорошо поддерживаются и основаны на современном подходе. С помощью этих двух методов вы сможете запускать любую нужную вам программу. Некоторые другие методы используют старые технологии, хотя они все еще работают благодаря устаревшей поддержке, лучше использовать эти новые методы.
Я буду рассматривать их как два разных типа программ, которые вы хотите запустить.
- Серверные демоны / программы, работающие в фоновом режиме
- Они будут запущены с использованием systemd
- Графические приложения, работающие в XWindows (или других средах Windows)
- Они будут запущены с помощью файла рабочего стола в папке автозапуска
Запуск файлов демона / программы с использованием systemd startup
Начиная с кода сервера.На примере моего матричного дисплея RGB.
Это матричный экран RGB, который установлен вне моего дома. В готовой версии Raspberry Pi полностью заключен в рамку для изображения, поэтому невозможно подключить экран и клавиатуру, не отключив всю установку.
На самом деле здесь используются два отдельных серверных демона. Один обрабатывает отображение изображений на дисплее, а другой обеспечивает планирование различных типов изображений и анимаций.Я начну с рассмотрения службы matrix-display-images, которая фактически отображает изображения на экране.
Файл .service
Для этого нужен файл с расширением .service, который хранится в / etc / systemd / system. Файл называется matrix-display-images.service.
[Единица измерения]
Описание = Отображение изображений на матрице RGB
After = sshd.service
[Услуга]
ExecStart = / home / pi / матрица-дисплей-изображения / матрица-дисплей-изображения
Пользователь = root
[Установить]
WantedBy = многопользовательский.цель
Это очень простой служебный файл с минимальными требованиями. Общие элементы конфигурации находятся в разделах [Unit] и [Install], а в разделе [Service] есть элементы, относящиеся к запускаемой службе.
[Единица]
Описание = Отображать изображения на матрице RGB
Описание довольно очевидно по названию, это читаемая пользователем строка, говорящая о том, что делает служба.
После = sshd.service
В инструкции «После» говорится, что нужно запускать это после запуска определенной службы.В данном случае я поставил его после службы sshd. В этом случае на самом деле не требуется, чтобы сначала запускалась служба sshd, но я не хотел, чтобы она запускалась до тех пор, пока сеть не станет доступной, так что это работает хорошо. Существуют различные инструкции, которые можно использовать, например, ранее (чтобы гарантировать, что это запускается перед другой службой) и которые требуют, что создает более сильную зависимость требований. Здесь достаточно инструкции после.
[Сервис]
ExecStart = / home / pi / matrix-display-images / matrix-display-images
ExecStart используется для выполняемой команды.Вы должны ввести полный путь к исполняемому файлу, вы не можете предполагать, что находитесь в своем домашнем каталоге. Фактически, демон systemd будет работать от имени пользователя root, а не под вашим именем пользователя.
Пользователь = root
Это подводит нас к следующей инструкции, которая определяет пользователя, под которым должна работать служба. В этом случае исполняемому файлу требуются права root, чтобы иметь возможность общаться с оборудованием, но если вам не нужны разрешения администратора, вам обычно следует использовать менее привилегированного пользователя.
[Установить]
WantedBy = multi-user.target
Последняя строка — это WantedBy, которая используется для обеспечения того, чтобы он запускался всякий раз, когда компьютер запускается в обычном режиме уровня пользователя. Использование multi-user.target означает, что это будет запускаться до GUI и фактически запустится, даже если GUI не будет запускаться, например, безголовый режим, который использует этот конкретный пользователь установки.
Установить служебный файл на автозапуск
Измените файл, чтобы он принадлежал пользователю root
sudo chown root: root / etc / systemd / system / matrix-display-images.сервис
Сделайте файл исполняемым, запустив
sudo chmod 755 /etc/systemd/system/matrix-display-images.service
Рекомендуется протестировать скрипт на этом этапе, а не ждать до перезагрузки. Это делается с помощью:
sudo systemctl start matrix-display-images.service
Затем вы можете проверить его работу, используя:
sudo systemctl status matrix-display-images.service
Теперь вы можете включить запуск при загрузке с помощью systemtctl
sudo systemctl enable matrix-display-images.сервис
Другой пример матрицы-сообщения
Вот еще один пример, в котором используется файл .service. Это для программы Python, которая работает вместе с кодом отображения изображений матрицы.
[Единица измерения]
Описание = Сообщения отображения сообщений на матрице RGB
After = sshd.service
[Услуга]
Тип = простой
ExecStart = / home / pi / matrix-display-images / matrix-messages / matrix-messages.py.
Пользователь = пи
[Установить]
WantedBy = многопользовательский.цель
Это похоже на предыдущий пример, но предназначено для работы от имени обычного пользователя pi, а не root. Вы также увидите, что я включил Type = simple, но в любом случае это значение по умолчанию. Это просто означает, что программа будет считаться запущенной после запуска основного процесса. Это используется, когда ваша программа работает как единый процесс и не разветвляется (разбивается на несколько потоков).
Существует множество других команд, которые можно использовать в файле .service, в зависимости от того, как программа должна быть запущена, каковы ее зависимости и что система должна делать, если она не запускается правильно или должна ли она пытаться перезапустить ее. если он выйдет из строя.
Другие примеры использования Systemd
Есть много других причин, по которым вы можете захотеть использовать systemd для запуска программы. Вот несколько примеров.
Запуск приложения с графическим интерфейсом при запуске
Другой пример — как запустить приложение после запуска XWindows. Это может быть полезно, если вы хотите запустить графическое приложение (например, написанное на Pygame / Pygame Zero) или если вы хотите использовать джойстик с помощью qjoypad.
Это руководство основано на LXDE, который используется в образе ОС Raspberry Pi, но аналогичен для других сред рабочего стола.Это также предполагает, что у вас включен автоматический вход, в противном случае он запустится, когда вы действительно войдете в систему.
Этот метод основан на создании файла .desktop. Это полезно, поскольку файл .desktop также используется, если вы хотите создать настраиваемую программу запуска и пункт меню в начальном меню. Это означает, что в любом случае полезно разбираться в этих файлах, но некоторые параметры могут не обязательно использоваться для автозапуска.
Автоматический запуск веб-браузера Chromium
Начните с поиска чего-нибудь полезного.Как запускать веб-браузер Chromium при каждом запуске системы. Вы можете найти существующий файл рабочего стола для браузера Chromium, найдя значок в меню «Пуск», щелкнув правой кнопкой мыши и выбрав «Свойства». Он немного урезан, но вы можете найти его, перейдя по адресу / usr / share / applications
. Вы можете открыть это в текстовом редакторе и посмотреть, как это работает.
Во-первых, много дополнительных записей для разных языков. Хотя они могут быть полезны для тех, кто не говорит по-английски, они делают файл очень сложным, поэтому я собираюсь начать с удаления этих записей.Это необходимо сделать для Name, GenericName и Comment. Я также собираюсь удалить все из строки Desktop Action NewWindow и ниже. Есть несколько разных разделов, но они действительно применимы только тогда, когда браузер уже запущен.
Остающийся файл показан ниже:
[Desktop Entry]
Версия = 1.0
Name = Веб-браузер Chromium
GenericName = Веб-браузер
Комментарий = Доступ в Интернет
Exec = хром-браузер% U
Терминал = ложь
X-MultipleArgs = ложь
Тип = Приложение
Значок = Chrome-браузер
Категории = Сеть; Веб-браузер;
MimeType = текст / html; текст / xml; приложение / xhtml_xml; x-схема-обработчик / http; x-схема-обработчик / https;
StartupNotify = true
Действия = Новое Окно; Инкогнито; TempProfile;
X-AppInstall-Package = Chrome-браузер
Это [Desktop Entry]
, который соответствует спецификации Version = 1.0
. Обратите внимание, что номер версии здесь является спецификацией записи на рабочем столе, а не версией веб-браузера.
Имя
, GenericName
и Комментарий
— это все читаемые пользователем строки, используемые для подсказок при наведении курсора и т. Д.
Exec
говорит, что нужно выполнить. Вот это говорит хром-браузер% U
. Первая часть — это имя исполняемого файла для запуска. Здесь просто используется название хром-браузер. Пути нет, поэтому команда должна находиться в пути поиска, в данном случае в / usr / bin.Если вы запускаете свою собственную программу, которой нет в пути поиска, вам следует указать полный путь к исполняемому файлу. % U — это то, как URL-адреса могут быть отправлены в браузер, чтобы он открывал их напрямую, использование заглавной буквы U означает, что каждая из записей (в данном случае URL-адреса) отправляется как отдельный аргумент. Terminal = false Используется
, потому что это графическое приложение. Если вы хотите запустить программу командной строки в оболочке терминала, вы должны использовать здесь true.Я не уверен насчет X-MultipleArgs
; похоже, что это расширение исходной спецификации, поэтому его нет в списке. Предположительно, это как-то связано с тем, как несколько аргументов отправляются исполняемому файлу браузера, и поэтому это не будет иметь значения для автозапуска.
Тип = Приложение
определяет его как исполняемый файл. У него есть значок
, который предназначен для … как вы уже догадались … значка для отображения. Категории
определяет, к каким категориям он относится, т. Е.в какое подменю он будет добавлен в меню «Пуск». MimeType
определяет, какие типы файлов должна открывать программа.
Параметр StartupNotification
указывает, что среда рабочего стола поддерживает уведомление о запуске. Например, в других средах рабочего стола, таких как Gnome, его можно использовать для размещения значка приложения поверх закрепленного приложения.
Параметр Действия
используется для добавления альтернативных опций в меню «Пуск», но в любом случае это не поддерживается в LXDE.Наконец, X-AppInstall-Package
— это еще одно расширение спецификации, используемое для указания способа установки или удаления программы.
Этот файл рабочего стола можно добавить в меню «Пуск», но его также можно использовать для автоматического запуска программы, сохранив его в каталоге /home/pi/.config/autostart
. Если этого направления еще нет, его нужно будет создать.
Сохраните его в каталоге автозапуска и перезагрузитесь, и вы увидите, что браузер Chromium запускается автоматически.
Вы также можете изменить этот файл. Например, если вы хотите, чтобы браузер запускался с определенной веб-страницы, замените исполняемую строку на
chromium-browser --noerrdialogs --disable-infobars --kiosk http://www.penguintutor.com
Обратите внимание, что этого недостаточно для использования в качестве безопасного киоска. В операционной системе есть и другие вещи, которые вам также следует отключить, и вы, вероятно, захотите начать с минимальной операционной системой, но она предоставляет способ автоматического запуска веб-браузера в режиме консоли.
Использование автозапуска для интерактивной электроники и роботов с помощью qjoypad
Другой пример: вы создали программу для взаимодействия с электронным проектом. Это может быть сделано для того, чтобы программа могла легко взаимодействовать с электроникой, чтобы пользователю было проще получить доступ к приложению после его включения, или, может быть, чтобы разрешить взаимодействие через то, для чего нужен графический интерфейс (например, джойстик). или джойстик с помощью qjoypad).
Если это просто приложение, которое будет работать в фоновом режиме, то это может быть лучше через systemd, но если программа должна иметь возможность доступа через графический интерфейс (например, с помощью Pygame / Pygame Zero), тогда это будет способ справиться тот.У вас не обязательно уже есть файл рабочего стола, поэтому он покажет базовый файл запуска, который можно использовать. Я также покажу, как вы можете использовать это для запуска другой программы, на примере qjoypad.
В этом примере я покажу, как можно автоматически запустить мой проект значка снеговика. Подробности проекта доступны в проекте носимых устройств Snowman Raspberry Pi. Он предназначен для использования в качестве значка, и к нему не прикреплен физический экран. Это означает, что он должен запускаться автоматически, но поскольку он использует джойстик для управления им, он должен запускаться под графическим интерфейсом пользователя.Поскольку это необходимо для запуска в среде графического интерфейса, я создал код, используя Pygame Zero (хотя это также можно использовать, если программа работает в терминале, но может взаимодействовать с Qjoypad). В этом примере используется qjoypad, используемый для взаимодействия с играми pygame zero. Сначала необходимо правильно настроить код снеговика и qjoypad, используя предыдущие ссылки.
Во-первых, я уже создал скрипт, который можно использовать для запуска как qjoypad, так и программы Snowman. Он находится в GitHub для Raspberry Pi Snowman Badge.Скрипт называется snowman.sh и содержит следующее.
#! / bin / bash
cd / home / pi // снеговик
qjoypad "снеговик" &
pgzrun snowman.py
Код сначала переходит в соответствующий каталог. Затем он запускает qjoypad с файлом макета снеговика. Обратите внимание, что амперсанд (&) на конце необходим, чтобы он работал в фоновом режиме. Затем snowman.py называется used pgzrun (Pygame Zero). Это делается исполняемым и представляет собой сценарий, который будет вызываться либо из меню «Пуск», либо из автозапуска.
Причина запуска этого скрипта в том, что я всегда хочу, чтобы qjoypad запускался всякий раз, когда я запускаю игру (хотя его можно запускать с клавиатуры, он действительно предназначен для использования с джойстиком). Поэтому его можно добавить в меню «Пуск», и он всегда будет запускать qjoypad. При использовании его через автозапуск вы можете создать два отдельных файла автозапуска, но, поскольку я уже создал этот сценарий, я думаю, что лучше просто создать один файл .desktop. Обратите внимание, что если вы запустите программу несколько раз (например,если один закрывается, а затем запускается снова), тогда qjoypad будет вызываться несколько раз, однако qjoypad не позволяет использовать несколько экземпляров, поэтому он просто продолжит запуск исходного. Если вы использовали этот метод для программы, которая может запускать несколько экземпляров, вам следует об этом знать.
С помощью этого сценария можно создать файл запуска .desktop, который запускает сценарий при входе в систему. Базовый пример показан ниже:
[Desktop Entry]
Версия = 1.0
Имя = Снеговик
Комментарий = Играть в снеговика
Exec = / home / pi / snowman / snowman.sh
Тип = Приложение
Терминал = ложь
Здесь представлены все команды, которые я уже объяснил на примере Chromium, но я использовал лишь небольшое подмножество этих команд. Сохраните его в /home/pi/.config/autostart как snowman.desktop, и он запустится автоматически, и вы сможете использовать джойстик с игрой.