Občas vytvoříte skript a pak chcete mít skripty řízené systemd nebo v některých případech chcete, aby se skripty samy restartovaly, když je z nějakého důvodu zabit.
Systemd v Linuxu pomáhá konfigurovat služby, které lze spravovat.
V tomto článku Ukážeme vám, jak vytvořit službu systemd.
Vytvoření systémové služby
Obecně
Prostě postupujte podle následujících kroků:
- Spuštěnou linuxovou službu najdete pod cestou /etc/systemd/system
cd /etc/systemd/system
- Vytvořte soubor s názvem [servicename.service] a přidejte následující
[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
POZNÁMKA :Nahraďte Tučné hodnoty výše s vašimi hodnotami vaší nové služby, kterou chcete vytvořit.
servisní jednotka je soubor s službou .service přípona obsahuje informace o procesu spravovaném systemd . Skládá se ze tří hlavních částí:
- [Jednotka] :tato část obsahuje informace, které se konkrétně netýkají typu jednotky, jako je popis služby
- [Služba] :obsahuje informace o konkrétním typu jednotky, v tomto případě služba
- [Instalovat] :Tato část obsahuje informace o instalaci jednotky
Pro projekty specifické pro Python, které zahrnují virtuální prostředí
- Postupujte podle stejných kroků výše, ale přidejte následující
[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
NEBO
[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
- Po dokončení znovu načtěte soubory služeb, aby zahrnovaly novou službu.
sudo systemctl daemon-reload
- Spusťte svou novou službu
sudo systemctl start [your_new_service].service
- Zkontrolujte stav své nové služby, např. (moje nová služba s názvem unixcop.service)
sudo systemctl status unixcop.service
- Povolte službu při každém restartu
sudo systemctl enable unixcop.service
- Zakázat službu při každém restartu
sudo systemctl disable unixcop.service
Závěr
To je ono
Ukázali jsme, jak vytvořit novou službu systemd v Linuxu
Díky!!