Linux команди

Как да стартирам автоматично команди и скриптове на Linux при рестартиране на системата

Как да стартирам автоматично команди и скриптове на Linux при рестартиране на системата
Автоматичното стартиране на приложения и скриптове при стартиране може да бъде полезно за автоматизиране на често срещани задачи и събития за зареждане. Тази статия ще обясни няколко метода, които могат да се използват за стартиране на приложения и скриптове при ново рестартиране или ново влизане.

Приложения за стартиране

Ubuntu и други базирани на GNOME дистрибуции идват с приложение, наречено просто „Приложения за стартиране“. Може да се използва за управление на приложения и скриптове, които се изпълняват при ново рестартиране на системата или влизане.

Стартирайте приложението „Стартиране на приложения“ от стартовия панел на приложения и кликнете върху бутона „Добавяне“, за да добавите нов запис.

Попълнете полетата „Име“ и „Команда“ според вашите нужди и след това кликнете върху бутона „Добавяне“, за да завършите създаването на нов запис. Записът, създаден на екранната снимка по-долу, ще изпраща напомняне „Направете резервно копие“ като системно известие при всяко рестартиране / влизане. Можете да го замените със собствена команда или с пълен път на вашия bash скрипт. Можете също да използвате всяка съществуваща системна команда или изпълними файлове, които обикновено се намират в различни “bin” папки във файловата система.

Както беше посочено по-горе, при всяко рестартиране се показва напомняне за архивиране.

Systemd

Systemd е демон и мениджър на услуги, който съдържа различни помощни програми за управление на системни процеси и компоненти на ОС. В опростената си форма той обикновено се използва за стартиране и край на услуги в нов цикъл на зареждане.

Systemd може да се използва за автоматично стартиране на приложение или стартиране на скрипт при ново зареждане. За да създадете същото известие за напомняне за архивиране, обяснено по-горе, първо трябва да създадете необходимите папки и файл, като изпълните командите по-долу:

$ mkdir -p ~ /.config / systemd / потребител
$ nano ~ /.config / systemd / user / backup_reminder.обслужване

Заменете „nano“ с команда на вашия любим текстов редактор. Заменете “backup_reminder” с всяко друго име, което предпочитате.

Поставете кода по-долу в backup_reminder.служебен файл, създаден с помощта на командата по-горе.

[Мерна единица]
Описание = Изпраща напомняне за архивиране при всяко рестартиране
PartOf = графична сесия.мишена
[Обслужване]
ExecStart = bash -c 'сън 10; notify-send "Направете резервно копие" '
Тип = onehot
[Инсталирай]
WantedBy = графична сесия.мишена

Кодът по-горе е доста ясен. Изпраща известие „Направете резервно копие“ 10 секунди след зареждането на графичната сесия (веднъж при всяко рестартиране или влизане).

Изпълнете командите по-долу, за да активирате услугата, така че тя да може автоматично да се изпълнява при всяко рестартиране.

$ chmod 644 ~ /.config / systemd / user / backup_reminder.обслужване
$ systemctl --user активира backup_reminder.обслужване
$ systemctl - потребителско презареждане на демона
$ рестартиране

Това е само прост пример за изпълнение на основна команда при зареждане с помощта на systemd. Можете също така да създавате разширени услуги с множество условия и множество команди. За повече информация вижте страницата man на systemd, като изпълните командата по-долу:

$ man systemd

Обърнете внимание, че този пример обяснява създаването на нова услуга, която не изисква root достъп и е подходяща за автоматично стартиране на приложения, които не изискват root права. Ако искате да стартирате автоматично скриптове, изискващи root достъп, трябва да създадете нова systemd услуга в директорията “/ etc / systemd / system” вместо “~ /.config / systemd / user ”папка и пропуснете превключвателя„ -user ”в командите, споменати по-горе.

Cron Job

Cron е инструмент, който може периодично да изпълнява планирани задачи в съответствие с условията, определени от потребителя. Тези планирани задачи се създават в Crontab в предварително дефиниран формат. С прости думи, Crontab казва на Cron кои задачи да изпълнява в кой момент от времето.

Подобно на systemd, заданията crontab могат да се използват за стартиране на приложения и автоматично стартиране на скриптове при зареждане. За да добавите нова cron задача, изпълнете командата по-долу:

$ crontab -e

Добавете следните редове в края на текстовия файл (автоматично стартира GNOME терминал при всяко рестартиране):

SHELL = / bin / bash
@reboot sleep 30 && DISPLAY =: 0 gnome-terminal

Можете да използвате вашата собствена команда или да предоставите пълен път към скрипта на черупката.

Имайте предвид, че за разлика от systemd, cron не може да открие дали графичната сесия е била заредена или не. Трябва да посочите някакъв очакван период на изчакване, докато X сървърът се зареди и идентификатор на дисплея. Можете да знаете за вашия идентификатор на дисплея, като изпълните командата по-долу:

$ echo $ DISPLAY

Забавянето преди изпълнение на команда или скрипт зависи от конфигурацията на вашата система и времето за зареждане.

Rc.местни

Друг метод за стартиране на скриптове и команди при стартиране е използването на „rc.локален ”файл. Имайте предвид, че при моето тестване не успях да отложа изпълнението на скрипта, докато графичната сесия не стартира на живо. Добавянето на всякакво забавяне на заспиването води до забавяне на показването на самия екран за вход. Поради това нямах успех при стартирането на графични приложения при стартиране с помощта на rc.локален файл. Редактиране на rc.local също изисква root достъп, за разлика от всички други примери, обяснени по-горе.

За да добавите команди / скриптове към rc.локален файл, изпълнете командата по-долу (създава нов rc.локален файл, ако не съществува):

$ sudo nano / etc / rc.местни

Добавете командите си между „#! / bin / bash ”и„ изход 0 ”редове, както е показано по-долу:

#! / bin / bash
път / към / my_script.ш
изход 0

Направете rc.локален файл, изпълним чрез изпълнение на командата по-долу:

$ sudo chmod + x / etc / rc.местни

Просто рестартирайте, за да влезе в сила стартовият скрипт.

Заключение

Това са няколко метода, които могат да се използват за автоматично стартиране на скриптове и приложения при стартиране. Ако искате да стартирате скриптове, които не изискват корен достъп, бих препоръчал да използвате GUI приложението „Стартиращи приложения“. Ако искате да стартирате приложения и скриптове с root достъп, бих ви предложил да създадете системна услуга на системно ниво.

За автора

Нитеш Кумар

Аз съм разработчик на софтуер на свободна практика и автор на съдържание, който обича Linux, софтуер с отворен код и общността на безплатния софтуер.

Вижте всички публикации
Добавете жестове на мишката към Windows 10, като използвате тези безплатни инструменти
През последните години компютрите и операционните системи значително се развиха. Имаше време, когато потребителите трябваше да използват команди за на...
Контролирайте и управлявайте движението на мишката между множество монитори в Windows 10
Двоен дисплей на мишката ви позволява да контролирате и конфигурирате движението на мишката между множество монитори, като забавя движенията му близо ...
WinMouse ви позволява да персонализирате и подобрите движението на показалеца на мишката на компютър с Windows
Ако искате да подобрите функциите по подразбиране на показалеца на мишката, използвайте безплатна програма WinMouse. Той добавя още функции, за да ви ...