En aquesta guia, explicaré com crear un servei específic per a l'usuari a Linux i com gestionar-lo mitjançant systemctl.
Motiu per tenir un servei d'usuari normal
El servei d'usuari normal és diferent del servei del sistema. El servei d'usuari normal està centrat en l'usuari iniciat. Aquest servei només funcionarà a la sessió de l'usuari que l'ha creat.
Com crear un servei d'usuari normal
Els serveis específics per a l'usuari a Linux es col·loquen al fitxer ~/.config/systemd/user directori. Si aquest directori no està present, es pot crear.
mkdir -p ~ / .config / systemd / usuariEl -p La bandera s'utilitza per crear un directori principal si és necessari. El ~ indica el directori d'inici de l'usuari local i és equivalent a /home/usuari mentre que el punt abans del fitxer de configuració l'amaga. Creem un fitxer d'script bash senzill que escrigui l'ús de la memòria en un text cada 30 minuts. Estic creant el guió amb el nom de script.sh .
#! /bin/bashmentre veritat
fer
lliure -m >> / casa / usuari / el meu fitxer.txt
dormir 1800
fet
Aquest script es pot crear a qualsevol lloc, però assegureu-vos que el camí especificat dins de l'script és un camí absolut.
Ara, creem un servei que executarà l'script anterior en segon pla. Inicieu qualsevol editor de text, com Nano o Vim, i enganxeu-hi les línies que s'indiquen a continuació.
[ Unitat ]Descripció =El meu servei
[ Servei ]
Tipus = simple
ExecStart = / paperera / xoc / casa / usuari / script.sh
Reinicia = en fracàs
[ Instal·lar ]
WantedBy =objectiu.predeterminat
A la secció [Unitat], el Descripció La directiva només conté el nom del servei. Tingueu en compte que no ha de tenir més de 80 caràcters.
La secció [Servei] conté les tres directrius importants. En primer lloc, el Tipus ; el qual és senzill , doncs ExecStart que conté l'executable del nostre script personalitzat. El servei només es reiniciarà quan hi hagi un error.
La secció [Instal·lar] conté el fitxer WantedBy directiva que és default.target , la qual cosa implica que el servei s'habilitarà a l'estat del sistema quan s'arribi al nivell d'execució predeterminat, que normalment és multiusuari.destinació o objectiu.gràfic.
Ara, deseu el fitxer al fitxer ~/.config/systemd/user directori amb qualsevol nom; L'estic posant nom el meuservei.servei .
Com gestionar un servei d'usuari normal
Per gestionar el servei d'usuari normal, s'utilitza l'ordre systemctl amb el fitxer -usuari bandera. El -usuari La bandera significa que l'usuari està contactant amb el gestor del servei, en lloc del sistema.
Després de crear el fitxer de servei específic de l'usuari, el primer pas crucial és tornar a carregar els fitxers de configuració del sistema.
systemctl --usuari dimoni-recàrregaAixò aplicarà els canvis.
Per saber si el servei s'està executant o no, utilitzeu systemctl, amb el -usuari bandera i opció.
systemctl --usuari estat [ nom_servei ]
Altres ordres per gestionar el servei normal d'usuari s'esmenten a continuació:
systemctl --usuari començar [ nom_servei ]systemctl --usuari habilitar [ nom_servei ]
systemctl --usuari Atura [ nom_servei ]
systemctl --usuari desactivar [ nom_servei ]
systemctl --usuari reinicia [ nom_servei ]
Com crear un servei d'usuari normal amb permisos d'administrador del sistema
Hi ha molts serveis que crea un usuari, però requereixen permís d'administrador per executar-se. Aquests serveis es poden crear afegint a Usuari directiva a la secció [Servei].
El Usuari La directiva es pot utilitzar per esmentar el nom de l'usuari els permisos del qual són necessaris per executar el servei, com ara admin . Per tant, si un usuari normal vol crear un servei que requereixi permisos d'administrador, només cal afegir-hi Usuari=administrador a la secció [Servei] farà la feina. Tanmateix, aquest servei romandrà actiu mentre l'administrador estigui actiu. Tingueu en compte que aquest servei no pot ser controlat directament per l'administrador.
Conclusió
L'usuari normal també pot crear un servei systemd, però s'ha de col·locar ~/.config/systemd/user directori. Aquest servei s'executa sempre que l'usuari que l'ha creat estigui iniciat la sessió. Aquests serveis també es gestionen mitjançant l'ordre systemctl però amb -usuari bandera. El que indica al systemd que el servei l'està cridant l'usuari, no el sistema. En aquesta guia, vaig crear un servei d'usuari normal personalitzat i vaig esmentar les ordres systemctl per gestionar-lo. A més, també vaig destacar un mètode per crear un servei que requereix privilegis administratius.