В някои случаи е необходимо скриптът да се изпълни при стартиране на системата. Такива случаи включват необходимостта от промяна на разделителната способност на екрана, стартиране на определени приложения и актуализиране на определена програма. Изпълнението на скрипт може да се осъществи по няколко начина. Това може да стане с помощта на графичен шел или на системата за инициализация systemd, която вече се използва в почти всички дистрибуции.
Първото нещо, което трябва да направите, е да създадете скрипт на удобно място и да го изпълните:
$ sudo gedit /script_path/script_name.sh
#!/bin/bash
echo "Hello world"
Този скрипт ще показва на потребителя съобщения "Hello world". След като програмата е готова, тя трябва да бъде направена изпълнима. За тази цел се използва следната команда:
$ sudo chmod ugo+x /script_path/script_name.sh
След това в главното меню на системата трябва да стартирате помощната програма "Автоматично стартиране на приложения".
Щракнете върху бутона "Add" (Добавяне) и въведете пълния път до файла със скрипта в полето "Command" (Команда). Можете да натиснете бутона "Browse" (Преглед), да намерите и изберете скриптния файл и да натиснете "Add" (Добавяне).
От този момент нататък програмата ще се изпълнява всеки път, когато стартирате графичната обвивка на Ubuntu.
Използвайте специална команда, за да създадете служебен файл на Systemd
Това е командата:
sudo systemctl edit --force myscript
You need to add the contents to this file:
[Unit]
Description=My Script Service
After=multi-user.target
[Service]
Type=idle
ExecStart=/full/path/to/script/script_name.sh
[Install]
WantedBy=multi-user.target
След това в реда, наречен ExecStart, трябва да изпълните едно от следните изисквания: напишете пътя до скрипта или командата, която трябва да се изпълни. След това скриптът се добавя в автозадаващото устройство:
$ sudo systemctl daemon-reload
$ sudo systemctl enable mysrcipt
Програмата ще се стартира след инициализиране на системата. За тази цел можете да използвате "стария" метод: можете да използвате rc.local
, за да създадете файла /etc/rc.local
и да запишете пътя до него в реда ExecStart на служебния файл.