Otázka – Jak automaticky spustit skript Pythonu pomocí systemd. Jak vytvořit vlastní službu systemd pomocí skriptu Python. Jak nakonfigurovat skript Python, aby se spouštěl jako systemd. Jak spravovat službu Python pomocí systemctl?
Tento návod použijte ke spuštění skriptu Python jako systémové služby pod systemd. Skript můžete snadno spustit, zastavit nebo restartovat pomocí příkazu systemctl. To také umožní automatické spouštění skriptu Python při startu systému.
Krok 1 – Falešná aplikace Pythonu
Nejprve jsem použil fiktivní skript Python, který naslouchá na zadaném portu. Upravte soubor Python následovně
sudo vi /usr/bin/dummy_service.py
a přidejte následující obsah pro figurínu, můžete použít svůj vlastní skript Python podle požadavků.
Python123456789101112 | #!/usr/bin/python3 import sockets =socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.bind(("localhost", 9988))s.listen(1) while Pravda:conn, addr =s.accept() data =conn.recv(1024) conn.close() my_function_that_handles_data(data) |
Krok 2 – Vytvořte soubor služby
Nyní vytvořte servisní soubor pro systemd následovně. Soubor musí mít .service rozšíření pod /lib/systemd/system/ adresář
sudo vi /lib/systemd/system/dummy.service
a přidejte do něj následující obsah. Změňte umístění reklamy v názvu souboru skriptu Python. Aktualizujte také popis.
[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
Krok 3 – Povolte nově přidanou službu
Vaše systémová služba byla přidána do vaší služby. Znovu načtěte démona systemctl, aby si mohl přečíst nový soubor. Po každém provedení změn v souboru .service musíte tohoto démona znovu načíst.
sudo systemctl daemon-reload
Nyní povolte spuštění služby při spouštění systému a také spusťte službu pomocí následujících příkazů.
sudo systemctl enable dummy.service sudo systemctl start dummy.service
Krok 4 – Start/Start/Status new Service
Nakonec zkontrolujte stav vaší služby podle následujícího příkazu.
sudo systemctl status dummy.service
Pomocí níže uvedených příkazů můžete zastavit, spustit a restartovat servisní příručku.
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