Přejít na hlavní obsah

Linux: jak spustit program jako démon

  • Andrea Kovářová
  • Tipy

Démoni jsou procesy, které běží na pozadí na operačním systému Linux a provádějí určité úkoly, jako je správa sítě, tisk, zálohování a další. Spuštění programu jako démona může být užitečné, pokud chcete, aby fungoval na pozadí bez přímé účasti uživatele. V tomto článku se podíváme, jak spustit program jako démon v Linuxu.

Ke spuštění programu jako démona budete potřebovat znalost příkazového řádku a některých příkazů Linuxu. Nejprve budete muset vytvořit Inicializační skript pro váš program. Inicializační skript je skript, který spustí program při spuštění operačního systému. Inicializační skript můžete vytvořit v libovolném textovém editoru a uložit jej do adresáře /etc/init.d / s názvem vašeho programu.

Po vytvoření inicializačního skriptu byste mu měli dát oprávnění k provádění pomocí příkazu chmod. Pokud se například váš skript nazývá myprogram, můžete nastavit oprávnění k provádění spuštěním příkazu chmod +x /etc/init.d/myprogram. Nyní je váš skript připraven ke spuštění.

Poznámka: před vytvořením inicializačního skriptu se ujistěte, že váš program může běžet na pozadí a nevyžaduje uživatelskou zkušenost. Některé programy nemusí podporovat spuštění jako démona kvůli svým specifikům nebo omezením.

Linux: spuštění programu jako démon

Chcete-li spustit program jako démon v Linuxu, musíte postupovat podle následujících kroků:

  1. Vytvořit skript inicializace démona. Tento skript bude použit ke spuštění a ovládání démona. Obvykle se nachází v adresáři / etc / init.d/ . V tomto skriptu je nutné zadat cestu k spustitelnému souboru programu a identifikovat příkazy ke spuštění, zastavení a restartu démona.
  2. Přiřadit práva k provedení skriptu inicializace démona. Chcete-li to provést, musíte provést příkaz chmod +x /etc/init.d / jméno_skriptu .
  3. Přidat skript inicializace démona do seznamu automatického spuštění operačního systému. Chcete-li to provést, spusťte příkaz update-rc.d jméno: defaults . Tím se démon automaticky spustí při spuštění systému.
  4. Spustit démona. Chcete-li to provést, spusťte příkaz /etc/init.d / jméno start . Nyní bude program běžet na pozadí jako démon.
  5. Navíc můžete nastavit logování démona, abyste získali informace o jeho práci. K tomu lze použít nástroje jako syslog nebo logrotate.

Nyní víte, jak spustit program jako démon v Linuxu. Tento přístup vám umožňuje automatizovat provádění systémových úkolů a zajistit nepřetržitý provoz vašich služeb.

Co je to démon?

V kontextu operačního systému Linux je démon (daemon) proces na pozadí, který se provádí na pozadí a není pod kontrolou uživatele. Démoni se spouští při spuštění systému nebo na vyžádání a provádějí různé úkoly, jako jsou síťové služby, servery, systémové procesy a další.

Démoni pracují bez ohledu na aktivitu uživatele a mohou fungovat po dlouhou dobu bez přímého uživatelského zážitku nebo dokonce bez přítomnosti konzole. Obvykle provádějí úkoly na pozadí, které se nezobrazují na obrazovce a zřídka hlásí svou práci jako výstup.

Démoni mají své jedinečné identifikátory procesu (PID) a nacházejí se ve speciálním adresáři systému, který ukládá spuštěné procesy. Mohou být napsány v různých programovacích jazycích a kompilovány nebo interpretovány jako běžné programy.

Démoni slouží jako důležité součásti operačního systému Linux, zajišťují nepřetržitý provoz systému a poskytují různé služby a funkce. Mohou být řízeny, spouštěny, zastavovány a restartovány pomocí systémových příkazů a služeb.

Příklady démonů v LinuxuPopis
sshdDémon, který má na starosti přístup přes protokol SSH a poskytuje bezpečné vzdálené připojení k systému.
httpdDémon webového serveru Apache, který zpracovává požadavky na HTTP a poskytuje webové stránky a další zdroje.
crondDémon Plánovače úloh Cron, který umožňuje uživateli plánovat a provádět úkoly s určitou periodicitou.

Spuštění programu jako démona umožňuje autonomní a nepřetržitý provoz procesu a také efektivní využití systémových zdrojů.

Výhody používání démonů

1. Nezávislost na uživatelské relaci: Démon funguje bez ohledu na to, zda je uživatel pojištěn nebo ne. Není nutné ponechat otevřenou relaci uživatele, aby program fungoval.

2. Odolnost proti selhání a restartu: Démon se může automaticky restartovat, pokud došlo k chybě nebo byl systém restartován. To umožňuje zabránit ztrátě dat a pokračovat bez zásahu uživatele.

3. Pracovní režim na pozadí: Démon provádí úkoly na pozadí, aniž by rušil uživatele od jeho hlavní práce. To je zvláště důležité pro programy, které provádějí dlouhé operace nebo zpracovávají velké množství dat.

4. Automatické spuštění při spuštění systému: Démon lze nakonfigurovat tak, aby se automaticky spouštěl při spuštění operačního systému. To umožňuje nepřetržitý provoz programu, a to i při restartu nebo výpadku napájení.

5. Možnost vzdáleného řízení: Démon lze nakonfigurovat pro vzdálenou správu a monitorování. To umožňuje správcům systému sledovat stav a výkon démona a provádět potřebné změny bez nutnosti fyzického přístupu k serveru.

6. Podpora multithreadingu: Démon může použít multithreading ke zpracování více dotazů paralelně. To zvyšuje produktivitu a efektivitu programu.

Používání démonů v linuxových systémech je spolehlivým a účinným způsobem, jak spouštět programy na pozadí a zajistit jejich stabilní provoz.

Jak spustit program jako démon?

  1. Vytvořte Inicializační skript pro spuštění programu jako démona. Inicializační skript je skript, který určuje režim démona, nastavení a akce prováděné při jeho spuštění.
  2. Uložte Inicializační skript do adresáře / etc / init.d / se jménem odpovídajícím názvu vašeho programu.
  3. Nastavte oprávnění k provádění pro Inicializační skript pomocí příkazu chmod +x/etc / init.d / jméno_vashe_programy .
  4. Nakonfigurujte Inicializační skript tak, aby určil cestu k spustitelnému souboru vašeho programu a všechna další nastavení, která potřebujete ke správnému spuštění.
  5. Přidejte Inicializační skript do automatického spouštění systému pomocí příkazu update-rc.d jméno_vashe_programy defaults . To zajistí, že váš program bude spuštěn jako démon při každém spuštění systému.
  6. Spusťte démona pomocí příkazu service název_vashe_programy start .

Váš program nyní poběží na pozadí jako démon na vašem systému Linux. Můžete použít příkazy service název_vášky_programy stop a service název_vášky_programy restart k zastavení a resetování démona.

Při spouštění programu jako démona buďte opatrní, protože běží na pozadí a může ovlivnit fungování vašeho systému. Ujistěte se, že jste skript inicializace správně nakonfigurovali a před spuštěním jako démon jej důkladně zkontrolovali.

Vytvoření skriptu init pro démona

Zde je jednoduchý příklad skriptu init pro démona:

#!/bin/bash### BEGIN INIT INFO# Provides: mydaemon# Required-Start: $remote_fs $syslog# Required-Stop: $remote_fs $syslog# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: My Daemon# Description: My Daemon description### END INIT INFODAEMON=/path/to/mydaemonDAEMON_NAME=mydaemondo_start() do_stop() case "$1" instart)do_start;;stop)do_stop;;restart)do_stopsleep 1do_start;;*)echo "Usage: $0 "exit 1;;esacexit 0

V tomto příkladu init skript obsahuje reklamy potřebné k automatickému načtení skriptu, jako jsou Provides, Required-Start, Required-Stop, Default-Start a Default-Stop. Obsahuje také popis démona v komentářích.

Dále následují definice proměnných DAEMON a DAEMON_NAME, které označují cestu k spustitelnému souboru démona a jeho jménu.

Poté následují funkce do_start a do_stop, které provádějí spuštění a zastavení démona. Ve funkci do_start se démon spustí na pozadí, aby init skript mohl pokračovat v provádění.

V bloku case jsou definovány možné příkazy pro skript init-start, stop a restart. Při spuštění skriptu init s příkazem start se spustí funkce do_start, při příkazu stop-do_stop, při příkazu restart-nejprve se zastaví démon a poté po 1 sekundovém zpoždění - jeho spuštění.

A nakonec init skript končí příkazy exit 0, které naznačují úspěšné spuštění skriptu.

Vytvořte a nakonfigurujte skript init pro svého démona a Linux jej automaticky stáhne a spustí, když se systém spustí.

Ovládání a ovládání démona

Po spuštění démona je potřeba kontrolovat a řídit jeho práci. K tomu lze využít několik týmů.

TýmPopis
systemctl start service_nameSpustí démona se zadaným jménem.
systemctl stop service_nameZastaví práci démona se zadaným jménem.
systemctl restart service_nameRestartuje démona se zadaným názvem.
systemctl status service_nameZobrazí informace o stavu démona se zadaným jménem.
systemctl enable service_nameObsahuje automatické spuštění démona se zadaným názvem při spuštění systému.
systemctl disable service_nameVypne automatické spouštění démona se zadaným názvem při spuštění systému.

Příkazy start , stop a restart vám umožňují ovládat práci démona po hlavní dobu. Tým status přináší informace o stavu démona a umožňuje mu ovládat jeho práci. Příkazy enable a disable řídí automatické spouštění démona při spuštění systému.

Místo příkazu systemctl lze na starších verzích Linuxu použít příkaz service. Například service service_name start .

Zastavení démona a jeho odstranění

K zastavení démona můžete použít příkaz systemctl stop . Tento příkaz odešle signál SIGTERM démonovi uvedenému v argumentu a zastaví jeho provoz.

Pokud se démon nezastaví pomocí příkazu stop, můžete zkusit použít příkaz kill . Chcete-li to provést , vyhledejte ID procesu (PID) démona pomocí příkazu ps aux | grep. Poté spusťte příkaz kill a odešlete signál SIGTERM démonovi a zastavte jeho práci.

Pokud se démon stále nezastaví nebo se chová nekorektně, můžete zkusit poslat signál SIGKILL. Proveďte příkaz kill -9, abyste vynutili zastavení démona. Buďte opatrní, protože tento signál nedává démonovi možnost vyčistit zdroje před zastavením a může způsobit ztrátu dat.

Chcete-li odstranit démona ze systému, spusťte příkaz systemctl disable k vypnutí automatického spouštění při spuštění systému. Poté spusťte příkaz systemctl stop a zastavte démona, pokud stále funguje.

Dále spusťte příkaz rm/etc/systemd/ system / pro odstranění konfiguračního souboru služby. Pokud démon také použil nějaké jiné soubory nebo adresáře, například k ukládání dat nebo doupat, smažte je pomocí příkazu rm-r .