GNU/Linux >> Linux Esercitazione >  >> Linux

Come avviare un servizio systemd dopo l'accesso dell'utente e interromperlo prima del logout dell'utente

Usa systemd include già il supporto per le sessioni utente, infatti dovresti già dipendere da esso (inconsapevolmente).

Crea la directory del servizio

mkdir -p $HOME/.local/share/systemd/user

Crea modifica un file di servizio (vim, gedit, geany - quello che vuoi)

vim $HOME/.local/share/systemd/user/my.service

Dovrebbe essere più o meno così, se si tratta di un servizio permanente.

[Unit]
Description=My very own Service
[Service]
Type=simple
TimeoutStartSec=0
ExecStart=/path/to/start/script arguments
[Install]
WantedBy=default.target

Ma sembra che tu preferisca attivarlo una volta, quindi essere bravo con esso, quindi usa piuttosto una configurazione one-shot come questa:

[Service]
Type=oneshot
RemainAfterExit=true
StandardOutput=journal
ExecStart=/path/to/start/script arguments
ExecStop=/path/to/stop/script arguments
[Install]
WantedBy=default.target

Questo ovviamente presuppone che il tuo script sia eseguibile, ad esempio:

chmod a+x /path/to/start/script
chmod a+x /path/to/stop/script

Altrimenti dovresti anteporre il percorso al rispettivo interprete:

ExecStart=/bin/bash /path/to/start/script arguments

Ora ricarica systemd (e accedi nuovamente per motivi di test)

systemctl --user enable my.service # enables the service
systemctl --user # should display your new unit in the list
journalctl --user should show the log

Se hai bisogno di maggiori informazioni, fai riferimento ad Arch-Wiki, ad esempio. Questo thread di askubuntu ha varie idee, tra cui, tra l'altro, la mia.

Puoi estendere il comportamento (se sei root) ad altri utenti definendo il servizio a livello globale. Per fare ciò devi creare il file di servizio in /usr/share/systemd/user/ non in $HOME/.local/share/systemd/user .


Linux
  1. Avvia, arresta e riavvia i servizi sul server Linux RHEL 7 systemd

  2. Come cambiare utente per un mucchio di file di servizio Systemd?

  3. Avvia, arresta e riavvia Crond Daemon in Linux

  4. Come avviare, arrestare e riavviare il servizio Zimbra

  5. Come avviare e arrestare OSWatcher

Come avviare, arrestare o riavviare Apache

Come avviare, arrestare o riavviare Nginx

Come avviare, arrestare e riavviare i servizi su Debian

Come ho imparato a smettere di preoccuparmi e ad amare systemd

Come avviare, arrestare e riavviare i servizi in Debian 10

Come avviare, arrestare o riavviare i servizi di rete su Rocky Linux 8