A volte crei uno script e quindi vuoi che gli script siano controllati da systemd o in alcuni casi desideri che gli script vengano riavviati da soli quando vengono uccisi per qualche motivo.
Sistema in Linux aiuta a configurare i servizi che possono essere gestiti.
In questo articolo, Ti mostreremo come creare un servizio systemd.
Crea servizio systemd
In generale
Segui i passaggi seguenti:
- Puoi trovare il servizio Linux in esecuzione nel percorso /etc/systemd/system
cd /etc/systemd/system
- Crea un file denominato [servicename.service] e aggiungi quanto segue
[Unit]
Description=<description_about_your_service>
[Service]
User=<user_such_as_root>
WorkingDirectory=<directory_of__your_script such as /home/unixcop>
ExecStart=<script_which_needs_to_be_executed>
Restart=always
[Install]
WantedBy=multi-user.target
NOTA :sostituisci il grassetto valori sopra con i valori del tuo nuovo servizio che desideri creare.
Un'unità di servizio è un file con .service suffisso contiene informazioni su un processo gestito da systemd . È composto da tre sezioni principali:
- [Unità] :questa sezione contiene informazioni non specificamente legate alla tipologia dell'unità, come la descrizione del servizio
- [Servizio] :contiene informazioni sul tipo specifico dell'unità, in questo caso un servizio
- [Installa] :Questa sezione contiene informazioni sull'installazione dell'unità
Per progetti specifici di Python che includono l'ambiente virtuale
- Segui gli stessi passaggi precedenti ma aggiungi quanto segue
[Unit]
Description=<description_about_your_project>
[Service]
User=<user_such_as_root>
WorkingDirectory=<path/to/your/project/directory/containing/the/python/script>
ExecStart=Path of virtualenv and your script file name
#Example for ExecStart=/home/user/.virtualenv/bin/python main.py
#replace /home/user/.virtualenv/bin/python with your virtualenv and main.py with your script name
Restart=always
[Install]
WantedBy=multi-user.target
OPPURE
[Unit]
Description=<description_about_your_project>
[Service]
User=<user_such_as_root>
WorkingDirectory=<path to your project directory>
ExecStart=/bin/bash -c 'cd /home/unixcop/project/ && source venv/bin/activate && python test.py'
#replace /home/unixcop/project/ with your Path, venv/bin/activate with your source and test.py with your script name
[Install]
WantedBy=multi-user.target
- Al termine, ricarica i file del servizio per includere il nuovo servizio.
sudo systemctl daemon-reload
- Inizia il tuo nuovo servizio
sudo systemctl start [your_new_service].service
- Controlla lo stato del tuo nuovo servizio, ad esempio (il mio nuovo servizio chiamato unixcop.service)
sudo systemctl status unixcop.service
- Abilita il tuo servizio ad ogni riavvio
sudo systemctl enable unixcop.service
- Per disabilitare il tuo servizio a ogni riavvio
sudo systemctl disable unixcop.service
Conclusione
Questo è tutto
Abbiamo illustrato come creare un nuovo servizio systemd in Linux
Grazie!!