Skip to content Skip to sidebar Skip to footer

Eseguire uno script in Python come un Servizio

Ecco una breve guida su come eseguire uno script Python allโ€™avvio di Linux

In questo articolo, vi spiegheremo come eseguire in maniera semplice uno script Python all’avvio di Linux. Infatti, inserire uno script a servizio รจ molto utile qualora volessimo costruire un dispositivo (ad esempio una RTU) che all’avvio del sistema operativo inizi a catturare dati. Inoltre, il servizio รจ estremamente comodo da avviare o fermare con una sola riga di comando.

Lo script, Start.sh e Stop.sh

Supponiamo che il nostro script Python da eseguire sia posizionato nella cartella:
				
					/home/pi/Script/MyScript.py
				
			

A questo file dobbiamo aggiungere altri due file: Start.sh e Stop.sh. Il file Start.sh servirร  ad avviare lo script, mentre il file Stop.sh servirร  a fermare lo script. Iniziamo a creare i file aprendo il terminale e digitando:

				
					touch Start.sh
sudo pico Start.sh
				
			
inseriamo il contenuto:
				
					#!/bin/bash
/usr/bin/python /home/pi/Script/MyScript.py
				
			

per salvare premiamo CTRL+O, premiamo Invio e poi chiudiamo con CTRL+X. Settiamo i permessi al file come segue:

				
					chmod a+x Start.sh
				
			

Adesso creiamo il file Stop.sh come segue:

				
					touch Stop.sh
sudo pico Stop.sh
				
			

inseriamo il contenuto:

				
					#!/bin/bash
for KILLPID in `ps ax | grep โ€˜MyScriptโ€™ | awk โ€˜{print $1;}โ€™`; do
kill -9 $KILLPID;
done
				
			

salviamo premendo CTRL+O, premiamo Invio e poi chiudiamo con CTRL+X. Settiamo i permessi al file come segue:

				
					chmod a+x Stop.sh
				
			

Come si puรฒ facilmente notare, il codice ferma in maniera violenta lo script, stroncando istantaneamente la sua esecuzione.

Lo script come servizio

Adesso creiamo un servizio che lanci lo script all’avvio del sistema operativo. Sempre dal terminale lanciamo il seguente comando:

				
					sudo pico /etc/systemd/system/name_script.service
				
			

ed inseriamo il seguente contenuto:

				
					[Unit]
Description=NAME_SCRIPT service
After=network.target

[Service]
Type=simple
ExecStart=/bin/bash /home/pi/Script/Start.sh
ExecStop=/bin/bash /home/pi/Script/Stop.sh
Restart=always
RestartSec=5
TimeoutSec=60
RuntimeMaxSec=infinity
PIDFile=/tmp/name_script.pid

[Install]
WantedBy=multi-user.target
				
			

non dimenticate di modificare name_script con un nome abbinato al vostro script. Salviamo premendo CTRL+O, poi premiamo Invio e poi chiudiamo con CTRL+X. A questo punto lanciamo gli ultimi comandi:

				
					sudo systemctl enable /etc/systemd/system/nome_script.service
sudo systemctl daemon-reload
sudo service nome_script start
				
			

A questo punto il vostro script sarร  messo a servizio e sarร  avviato. Per verificare la presenza di errori o meno, potete lanciare questo comando:

				
					sudo service nome_script status
				
			

Per stoppare lo script, potete lanciare il comando:

				
					sudo service nome_script stop
				
			

Sei un appassionato di dispositivi innovativi?

Caronte Consulting progetta e realizza sistemi hardware e software nel campo dellโ€™Industria 4.0, dotati di una sofisticata ed efficace Intelligenza Artificiale.

I nostri dispositivi sono realizzati su misura alle esigenze del Cliente e permettono di automatizzare completamente i processi industriali, ottimizzando la produzione e creando un risparmio di materie prime e di consumi energetici.