====== std.process ====== Prozesserzeugung und -verwaltung über POSIX-Systemaufrufe (''fork'', ''execve'', ''execvp'', ''waitpid'', ''kill''). ''spawn(prog)'' startet einen Kindprozess und gibt seine PID zurück; ''run(prog)'' wartet zusätzlich auf das Ende. ''wait_for''/''try_wait'' warten blockierend bzw. non-blocking auf den Exit-Code; ''terminate''(SIGTERM) und ''terminate_force''(SIGKILL) beenden Prozesse; ''shell(cmd)'' führt einen Shell-Befehl aus. Einsatzbereiche: Daemon-Launcher, Build-Systeme, Prozess-Pooling, Test-Runner, Skript-Ausführung aus Lyx-Programmen. **Autor:** Andreas Röne\\ **Copyright:** 2024-2025 Andreas Röne ---- ===== Typen ===== ==== Process = int64 ==== ==== ExitCode = int64 ==== ---- ===== Externe Funktionen ===== ^ Signatur ^ Beschreibung ^ | ''fork(): int64'' | Erzeugt Kindprozess als Kopie des Elternprozesses | | ''execve(path: pchar, argv: pchar, envp: pchar): int64'' | Ersetzt Prozessabbild mit neuem Programm | | ''execvp(path: pchar, argv: pchar): int64'' | Führt Programm über PATH-Suche aus | | ''waitpid(pid: int64, status: int64, options: int64): int64'' | Wartet auf Statusänderung eines Kindprozesses | | ''kill(pid: int64, sig: int64): int64'' | Sendet Signal an einen Prozess | | ''getpid(): int64'' | Gibt Prozess-ID des aktuellen Prozesses zurück | ---- ===== Konstanten ===== ^ Name ^ Typ ^ Wert ^ Sichtbarkeit ^ | ''WNOHANG'' | ''int64'' | ''1'' | pub | | ''SIGTERM'' | ''int64'' | ''15'' | pub | | ''SIGKILL'' | ''int64'' | ''9'' | pub | ---- ===== Funktionen ===== ^ Signatur ^ Sichtbarkeit ^ Beschreibung ^ | ''spawn(prog: pchar): Process'' | pub | Startet Kindprozess und gibt dessen PID zurück | | ''run(prog: pchar): ExitCode'' | pub | Startet Prozess und wartet auf Beendigung | | ''wait_for(pid: int64): ExitCode'' | pub | Wartet blockierend auf Prozess-Ende | | ''try_wait(pid: int64): ExitCode'' | pub | Prüft non-blocking ob Prozess beendet ist | | ''proc_kill(pid: int64, sig: int64): int64'' | pub | Sendet beliebiges Signal an Prozess | | ''terminate(pid: int64): int64'' | pub | Beendet Prozess mit SIGTERM | | ''terminate_force(pid: int64): int64'' | pub | Beendet Prozess erzwungen mit SIGKILL | | ''is_running(pid: int64): bool'' | pub | Prüft ob ein Prozess noch läuft | | ''self_pid(): int64'' | pub | Gibt eigene Prozess-ID zurück | | ''shell(cmd: pchar): ExitCode'' | pub | Führt Shell-Befehl aus und gibt Exit-Code zurück |