Systemd è una moderna suite software che fornisce molti componenti su a Linux sistema che include un gestore di sistema e di servizio. È compatibile con SysV E LSB init e funziona in sostituzione di sysvinit.
Un servizio systemd è definito in un file unit (un'unità è una rappresentazione di un servizio e risorse di sistema come dispositivi, socket, punti di montaggio, ecc.). I file delle unità di servizio personalizzate devono essere archiviati nel formato /etc/systemd/system/ directory e deve avere un file .servizio
estensione. Ad esempio, un'usanza test-app usi del servizio /etc/systemd/system/test-app.service file unitario.
[ Potrebbe piacerti anche: Perché "init" doveva essere sostituito con "systemd" in Linux ]
Un file unit è un file di testo in stile ini che di solito include tre sezioni comuni. La prima sezione è di solito il Unità sezione che contiene informazioni generiche sull'unità che non dipendono dal tipo di unità.
La sezione successiva è la sezione del tipo di unità, per un servizio è a
Servizio sezione. E la sezione finale è il Installare sezione contenente le informazioni sull'installazione dell'unità.In questa guida, mostreremo come creare un nuovo file systemd service e gestire il servizio utilizzando il comando systemctl, su Linux.
Per eseguire un'applicazione, un programma o uno script come servizio in systemd, puoi creare un nuovo servizio systemd come segue. Inizia creando il servizio unità file denominato test-app.service (ricordati di sostituire test-app con il nome effettivo del servizio o dell'applicazione), sotto /etc/systemd/system/:
# vi /etc/systemd/system/test-app.service.
La configurazione seguente viene utilizzata per definire un servizio per l'esecuzione di a Borraccia applicazione utilizzando Gunicorn, un server HTTP WSGI Python per UNIX.
[Unità] Description=Demone Gunicorn per servire test-app. After=network.target [Servizio] Utente=radice. Gruppo=radice. WorkingDirectory=/apps/test-app/ Ambiente="PATH=/apps/test-app/bin" ExecStart=/apps/test-app/bin/gunicorn --workers 9 -t 0 --bind 127.0.0.1:5001 -m 007 wsgi: app --log-level debug --access-logfile /var/log/gunicorn/test_app_access.log --error-logfile /var/log/gunicorn/test_app_error.log. ExecReload=/bin/kill -s HUP $MAINPID. RestartSec=5 [Installa] WantedBy=multiutente.target.
Descriviamo brevemente ciascuna direttiva di configurazione nella configurazione precedente:
.vuole/
O .richiede/
directory di ciascuna delle unità elencate, target.multiutente in questo caso, quando il test-app.service l'unità è abilitata utilizzando il comando abilita systemctl.Puoi trovare tutti i parametri di configurazione dell'unità di servizio, ben descritti nel Configurazione dell'unità di servizio documentazione.
Salva il file dell'unità e chiudilo. Quindi ricarica systemd con questo nuovo file di unità di servizio eseguendo:
# comando systemctl daemon-reload.
Ricordarsi di eseguire sempre questo comando dopo aver modificato un file unit.
Per avviare/attivare il servizio, eseguire il comando systemctl come segue:
# systemctl avvia test-app.service.
Per verificare se il servizio è in esecuzione o meno, emettere il comando systemctl come mostrato.
# test di stato systemctl-app.service.
Per abilitare l'avvio del servizio all'avvio del sistema, utilizzare il file abilita systemctl comando. Puoi verificare se il servizio è stato abilitato utilizzando il systemctl è abilitato comando come segue:
# systemctl abilita test-app.service. # systemctl è abilitato test-app.service.
In alternativa, puoi anche abilitare e avviare il servizio contemporaneamente come mostrato.
# systemctl enable --now test-app.service.
Per interrompere/disattivare il servizio, eseguire il file systemctl stop comando come segue:
# systemctl interrompe test-app.service.
Per riavviare il servizio, eseguire il file riavvio systemctl comando come segue:
# systemctl riavvia test-app.service.
Puoi anche disabilitare un servizio per impedirne l'avvio all'avvio del sistema, utilizzando il file ssystemctl disabilitato comando. Puoi verificare se il servizio è stato abilitato utilizzando il systemctl è abilitato comando come segue:
# systemctl disabilita test-app.service. # systemctl is-disabled test-app.service.
In alternativa, puoi disabilitarlo e interromperlo contemporaneamente come mostrato.
# systemctl disable --now test-app.service.
Per ulteriori dettagli sulla gestione dei servizi systemd e di altre risorse, eseguire:
# man systemctl.