Portál AbcLinuxu, 9. května 2025 06:05
Ahoj,
na Ubuntu mám spuštěné dva nezávislé procesy: "Master" (skript v Perlu) a "Slave" (Céčko). V případě že "Slave" zachytí přerušení měl by o tom odeslat zprávu procesu "Master". Bohužel, protože
procesy jsou nezávislé nelze pro komunikaci použít běžné roury. Prý lze použít roury přes
FIFO soubory. Nebo je rozumnější použít sokety (server - klient) ?? Nebo existuje ještě
další, elegantnější řešení?
Nezávislé znamená, že mezi nimi není vztah rodič-potomek? Pak jsou v zásadě možnosti (v náhodném pořadí): - pojmenované roury (viz mkfifo) - SysV IPC (viz např. msgget nebo i shmget) - POSIX IPC (viz např. mq_open nebo i shm_open) - již zmíněné sockety, pro lokální viz ,Unix domain sockets` v info libc Doporučovat nebudu nic, protože to záleží na situaci. FIFO je asi nejjednodušší (v perlu viz POSIX::mkfifo), sokety nejjednodušší nejsou, ale umožní snáz přejít na připojování klientů z jiných počítačů.
ješte jsem nyní uvažoval (po položení otázky: zda jsou procesy opravdu nezávislé)....
V případě že bych z perlovského skriptu spustil pomocí "system" proces "Slave"...jednalo by se tím pádem o vztah rodič potomek? Dalo by se požít klasických rour?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.