Partoska Laboratory
$ dpalv1.3.2

Daemon Pal

Malý správce procesů pro macOS a Linux. Udrží vaše servery, workery a skripty v chodu a po ukončení je znovu spustí. Bez roota, bez závislostí, jeden program.

Správce procesůUživatelský prostorOpen Source (MIT)Běží na Raspberry Pi
dpal — terminál

# Instalace přes npm (nebo Homebrew, .deb, .rpm).

$ npm install -g @partoska/dpal

# Spuštění řídicího procesu.

$ dpal -C &

# Přidání procesu pod dohled.

$ dpal -c /usr/bin/python3 -m http.server 8080

# Spuštění a kontrola stavu.

$ dpal -s python3
$ dpal -l -a

Proč Daemon Pal?

Malý a bez závislostí

Jeden program v C99, který potřebuje jen standardní knihovnu C. Hodí se stejně dobře na Raspberry Pi Zero jako na build server.

Běží v uživatelském prostoru

Bez roota a bez systémových služeb. Daemon Pal běží vedle systemd nebo launchd a nijak do nich nezasahuje.

Restart po ukončení

Když se proces pod dohledem ukončí, Daemon Pal ho znovu spustí. U každého procesu můžete nastavit prodlevu restartu, aby se chybující služba nezacyklila.

Jednoduchá konfigurace v INI

Definujte procesy s argumenty, proměnnými prostředí, prodlevou restartu a rotací logů v přehledném souboru INI. Seznam můžete kdykoli importovat, exportovat a uložit.

Izolované pracovní adresáře

Každý řídicí proces má vlastní pracovní adresář. Spusťte jeden pro každý projekt a ovládejte je zvlášť pomocí -D.

Připraveno pro AI agenty

Daemon Pal obsahuje skill pro AI agenty, takže ho AI asistenti pro programování umí nainstalovat a spravovat vaše procesy za vás.

Získat skill Daemon Pal

Jeden program, dva režimy

Stejný program dpal běží buď jako dlouhodobý řídicí proces, nebo jako krátkodobý vykonavatel příkazů. Řídicí proces spustíte jednou a pak mu posíláte příkazy.

Řídicí proces

Daemon, který vlastní vaše procesy. Spouští je, hlídá, po ukončení je restartuje a zapisuje jejich logy.

$ dpal -C -a &

Vykonavatel příkazů

Krátkodobý klient, který pošle běžícímu řídicímu procesu jeden příkaz: výpis, spuštění, zastavení, restart, přidání, smazání, import nebo export.

$ dpal -r web

Rychlý start

Od instalace k procesu pod dohledem v pěti krocích. Příklad pomocí Pythonu zpřístupní aktuální adresář přes HTTP.

  1. Nainstalujte dpal

    Nainstalujte CLI a ověřte verzi. Dáváte přednost Homebrew nebo nativnímu balíčku? Podívejte se na možnosti instalace.

    $ npm install -g @partoska/dpal
    $ dpal -v
  2. Spusťte řídicí proces

    Spusťte daemon na pozadí. Svůj stav ukládá do $DPAL_HOME, nebo do ~/.dpal, pokud proměnná není nastavená.

    $ dpal -C &
  3. Přidejte proces

    Zadejte cestu ke spustitelnému souboru a jeho argumenty. Proces dostane jméno podle spustitelného souboru, zde python3.

    $ dpal -c /usr/bin/python3 -m http.server 8080
  4. Spusťte ho a zkontrolujte

    Spusťte proces podle jména nebo ID a pak vypište všechny procesy s jejich ID a stavem.

    $ dpal -s python3
    $ dpal -l -a
  5. Uložte nebo ukončete

    Uložte seznam, aby se při příštím spuštění znovu načetl, nebo zastavte řídicí proces i všechny procesy, které hlídá.

    $ dpal -p
    $ dpal -k

Příklady

Popište své procesy v souboru INI, pak ho načtěte a vše spusťte jedním příkazem. Komentáře pište na samostatné řádky.

ecosystem.ini
; Each [section] is one process, named after the section.[web]Id=1App=/usr/bin/nodeDir=/srv/web; First Arg is argv[0], then one Arg per argument.Arg=nodeArg=server.jsEnv=(Name=PORT,Value=8080)Env=(Name=NODE_ENV,Value=production); Wait 5 seconds before restarting after an exit.RestartSec=5; Rotate the log at 10 MB and keep 3 old files.LogMaxSize=10485760LogRotation=3 [worker]Id=2App=/usr/bin/python3Dir=/srv/workerArg=python3Arg=worker.pyRestartSec=10
$ dpal -C -i ecosystem.ini -a &
$ dpal -l -a

Další možnosti najdete v dokumentaci.

Instalace

Vyberte způsob, který vyhovuje vašemu systému. Každá možnost nainstaluje stejný program dpal.

$ brew install partoska/tap/dpal

Pro macOS a Linux na x64 a ARM64.

Příkazy používají nejnovější verzi 1.3.2. Všechny soubory a kontrolní součty SHA256 najdete na stránce vydání.

Přehled příkazů

Při každém volání spusťte jeden příkaz. Procesy můžete určit jménem nebo ID, případně všechny pomocí -a. Vestavěnou nápovědu zobrazíte příkazem dpal -h.

Řídicí proces

-C, --control
Spustí řídicí proces.
-D, --dir
Použije zadaný pracovní adresář.
-i, --ini
Načte procesy ze souboru INI.
-a, --auto-start
Spustí všechny načtené procesy.
-f, --force
Spustí nebo provede i při zamčeném pracovním adresáři.

Vykonavatel příkazů

-l, --list
Vypíše procesy.
-s, --start
Spustí procesy.
-t, --stop
Zastaví procesy signálem SIGTERM.
-r, --restart
Zastaví a znovu spustí procesy.
-c, --create
Přidá proces ze spustitelného souboru a jeho argumentů.
-d, --delete
Odebere procesy ze seznamu.
-i, --import
Importuje procesy ze souboru INI.
-e, --export
Exportuje procesy do souboru INI.
-p, --persist
Uloží seznam, aby se načetl při příštím spuštění.
-k, --kill
Zastaví řídicí proces i všechny jeho procesy.
-a, --all
Použije příkaz na všechny procesy.

Použití

Servery a zařízení

  • →Udržujte služby v chodu na Raspberry Pi nebo jiném malém zařízení.
  • →Dohlížejte na webové aplikace a workery na serveru bez přístupu k rootu.
  • →Odlehčená alternativa k jednotkám systemd pro procesy běžného uživatele.

Vývoj a automatizace

  • →Spusťte celý lokální stack (API, workery, watchery) jedním příkazem.
  • →Oddělte skupiny procesů pro každý projekt s vlastním pracovním adresářem.
  • →Nechte AI asistenta pro programování spouštět, zastavovat a restartovat vaše vývojové servery.

Technické specifikace

JazykC99
LicenceMIT
Verze1.3.2
PlatformamacOS 11+, Linux (x64, ARM64, ARMv6+)
ZávislostiStandardní knihovna C
SestaveníCMake 3.13+

Udržte své procesy v chodu.

Nainstalujte Daemon Pal jedním příkazem a svůj první proces budete mít pod dohledem za méně než minutu.

Prohlédněte si zdrojový kód na GitHubu, stáhněte balíček z npm, přečtěte si dokumentaci nebo přidejte skill pro AI agenty.