Domanda:come eseguire automaticamente uno script Python utilizzando systemd. Come creare il proprio servizio systemd usando lo script Python. Come configurare lo script Python per l'avvio come systemd. Come gestire il servizio Python con systemctl?
Usa questo tutorial per eseguire lo script Python come servizio di sistema in systemd. Puoi facilmente avviare, interrompere o riavviare il tuo script usando il comando systemctl. Ciò consentirà anche di eseguire automaticamente lo script Python all'avvio del sistema.
Fase 1 – Applicazione Python fittizia
Prima di tutto, ho usato uno script Python fittizio che ascolta su una porta specificata. Modifica un file Python come segue
sudo vi /usr/bin/dummy_service.py
e aggiungi i seguenti contenuti per fittizio, puoi usare il tuo script Python secondo i requisiti.
Python123456789101112 | #!/usr/bin/python3 import sockets =socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.bind(("localhost", 9988))s.listen(1) while Vero:conn, addr =s.accept() data =conn.recv(1024) conn.close() my_function_that_handles_data(data) |
Fase 2:crea un file di servizio
Ora, crea un file di servizio per systemd come segue. Il file deve contenere .service estensione in /lib/systemd/system/ directory
sudo vi /lib/systemd/system/dummy.service
e aggiungi il seguente contenuto al suo interno. Modifica la posizione dell'annuncio del nome del file dello script Python. Aggiorna anche la descrizione.
[Unit] Description=Dummy Service After=multi-user.target [email protected] [Service] Type=simple ExecStart=/usr/bin/python3 /usr/bin/dummy_service.py StandardInput=tty-force [Install] WantedBy=multi-user.target
Fase 3:abilita il servizio appena aggiunto
Il tuo servizio di sistema è stato aggiunto al tuo servizio. Ricarichiamo il demone systemctl per leggere il nuovo file. Devi ricaricare questo demone ogni volta dopo aver apportato modifiche al file .service.
sudo systemctl daemon-reload
Ora abilita l'avvio del servizio all'avvio del sistema, avvia anche il servizio utilizzando i seguenti comandi.
sudo systemctl enable dummy.service sudo systemctl start dummy.service
Fase 4 – Avvia/Avvia/Stato nuovo servizio
Infine controlla lo stato del tuo servizio con il seguente comando.
sudo systemctl status dummy.service
Utilizza i comandi seguenti per interrompere, avviare e riavviare il manuale di servizio.
sudo systemctl stop dummy.service #To stop running service sudo systemctl start dummy.service #To start running service sudo systemctl restart dummy.service #To restart running service