Com executar ordres i scripts de Linux automàticament en reiniciar el sistema

How Run Linux Commands



Executar aplicacions i scripts automàticament a l’inici pot ser útil per automatitzar esdeveniments i tasques d’arrencada habituals. En aquest article s'expliquen alguns mètodes que es poden utilitzar per iniciar aplicacions i scripts en un nou reinici o en un nou inici de sessió.

Aplicacions d’inici

Ubuntu i altres distribucions basades en GNOME vénen amb una aplicació anomenada simplement Aplicacions d’inici. Es pot utilitzar per gestionar aplicacions i scripts que s’executen en un nou reinici o inici de sessió del sistema.







Inicieu l'aplicació Iniciar aplicacions des del menú d'aplicacions i feu clic al botó Afegeix per afegir una entrada nova.





Empleneu els camps Nom i Ordre segons les vostres necessitats i feu clic al botó Afegeix per acabar de crear una entrada nova. L'entrada creada a la captura de pantalla següent enviarà un recordatori Crea una còpia de seguretat com a notificació del sistema en cada reinici / inici de sessió. Podeu substituir-lo per la vostra pròpia ordre o per la ruta completa del vostre script bash. També podeu utilitzar qualsevol ordre o executable del sistema que es troba normalment en diverses carpetes de bin del sistema de fitxers.





Com s'ha indicat anteriorment, es mostra un recordatori de còpia de seguretat a cada reinici.



Systemd

Systemd és un dimoni i un gestor de serveis que conté diverses utilitats per gestionar els processos del sistema i els components del SO. En la seva forma simplista, normalment s'utilitza per iniciar i finalitzar serveis en un nou cicle d'arrencada.

Systemd es pot utilitzar per iniciar automàticament una aplicació o executar un script en un nou arrencada. Per crear la mateixa notificació de recordatori de còpia de seguretat explicada anteriorment, primer heu de crear les carpetes i el fitxer necessaris executant les ordres següents:

$mkdir -p~/.config/sistema/usuari
$nano~/.config/sistema/usuari/backup_reminder.service

Substituïu nano per l'ordre del vostre editor de text preferit. Substituïu backup_reminder per qualsevol altre nom que preferiu.

Enganxeu el codi següent al fitxer backup_reminder.service creat amb l'ordre anterior.

[Unitat]
Descripció = Envia un recordatori de còpia de seguretat a cada reinici
PartOf = sessió-gràfica.direcció

[Servei]
ExecStart = bash -c 'dormir 10; notificar-enviar 'Fer una còpia de seguretat'
Tipus = un tret

[Instal·la]
WantedBy = sessió-gràfica.target

El codi anterior és bastant senzill. Envia una notificació Crea una còpia de seguretat 10 segons després de carregar la sessió gràfica (un cop cada reinici o inici de sessió).

Executeu les ordres següents per habilitar el servei perquè es pugui executar automàticament a cada reinici.

$chmod 644~/.config/sistema/usuari/backup_reminder.service
$ systemctl--usuari habilitarbackup_reminder.service
$ systemctl--usuaridimoni-recarregar
$ reiniciar

Aquest no és més que un simple exemple d’executar una ordre bàsica en arrencar mitjançant systemd. També podeu crear serveis avançats amb diverses condicions i diverses ordres. Per obtenir més informació, consulteu la pàgina de manual de systemd executant l'ordre següent:

$homesistema

Tingueu en compte que aquest exemple explica la creació d’un servei nou que no requereix accés root i que és adequat per iniciar aplicacions automàtiques que no requereixen permisos root. Si voleu iniciar automàticament els scripts que requereixen accés root, heu de crear un nou servei systemd al directori / etc / systemd / system en lloc de la carpeta ~ / .config / systemd / user i ometre el commutador –user a les ordres esmentades anteriorment.

Cron Job

Cron és una eina que pot executar periòdicament tasques programades segons les condicions especificades per un usuari. Aquests treballs programats es creen a Crontab en un format predefinit. En termes senzills, Crontab li diu a Cron quins treballs cal executar en quin moment del temps.

Igual que systemd, els treballs crontab es poden utilitzar per iniciar aplicacions i executar scripts automàticament en arrencar. Per afegir un nou treball cron, executeu l'ordre següent:

$crontab-I

Afegiu les línies següents al final del fitxer de text (llança automàticament el terminal GNOME a cada reinici):

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

Podeu utilitzar el vostre propi comandament o proporcionar un camí complet a un script de shell.

Tingueu en compte que, a diferència de systemd, cron no pot detectar si s’ha carregat o no la sessió gràfica. Heu d'especificar un període d'espera estimat fins que es carrega el servidor X i un identificador de visualització. Podeu conèixer el vostre ID de visualització executant l'ordre següent:

$trobo $ DISPLAY

El retard abans de l'execució de l'ordre o l'script depèn de la configuració del sistema i del temps d'arrencada.

Rc.local

Un altre mètode per executar scripts i ordres a l’inici és utilitzar el fitxer rc.local. Tingueu en compte que en les meves proves, no vaig poder ajornar l'execució de l'script fins que la sessió gràfica es va publicar. Si s'afegeix un retard de son, es produeix un retard en la visualització de la pantalla d'inici de sessió. Per això, no vaig tenir èxit en executar aplicacions gràfiques en iniciar mitjançant el fitxer rc.local. L’edició de rc.local també requereix accés root, a diferència de la resta d’exemples explicats anteriorment.

Per afegir comandes / scripts al fitxer rc.local, executeu l'ordre següent (es crea un fitxer rc.local nou si no existeix):

$suo nano /etc/rc.local

Afegiu les vostres ordres entre #! / bin / bash i sortir de 0 línies, com es mostra a continuació:

#! / bin / bash
path / to / my_script.sh
sortida 0

Feu que el fitxer rc.local sigui executable executant l'ordre següent:

$suo chmod+ x/etc/rc.local

Només cal reiniciar perquè l'script d'inici tingui efecte.

Conclusió

Aquests són alguns mètodes que es poden utilitzar per executar automàticament scripts i aplicacions a l’inici. Si voleu executar scripts que no requereixen accés d’arrel, us recomanaria que feu servir l’aplicació GUI d’aplicacions d’inici. Si voleu executar aplicacions i scripts amb accés root, us suggeriria que creeu un servei systemd a nivell de sistema.

Sobre l'autor

Nitesh Kumar

Sóc desenvolupador de programari autònom i escriptor de contingut que estima Linux, el programari de codi obert i la comunitat de programari lliure.

Veure totes les publicacions