Do služba.socket:
ExecStartPost=/bin/systemctl start služba.service
Nevidím ale moc rozdíl v tom, když se služba spustí, protože na socket přijde stop, a když se spustí hned a nic nedělá, až dostane první zprávu, která je stop.
Možná jsem to nenapsal srozumitelně. Cílem je mít možnost předat procesu zprávy (textové příkazy) na stdin.
Ta služba běží sama o sobě a většinou s ní není potřeba nijak (po stdin) komunikovat. Je aktivní na síti. Ale občas je třeba tomu nějaký příkaz poslat. Umí se ukončit i na příkaz stop (poslaný na stdin). Korektně se ukončí. Tohle všechno funguje.
Funguje i
systemctl start sluzba,
systemctl stop sluzba, i když je to spuštěné tímto způsobem (což chci), tak funguje propojení fifo socket na stdin - skvělé.
Ten socket na stdin chci zachovat (k vůli tomu to dělám), ale rád bych vypnul socket activation.
Tedy, pokud danou službu zapnu systemctl start sluzba, aby šlo komunikovat pomocí socketu (to teď jde), ale v momentě, kdy se služba ukončí (ať již sama - proces služby se ukončí, nebo systemctl stop sluzba), tak nechci, aby se opět spustila přes socket.
Teoreticky by šlo dát do sluzba.service:
ExecStopPost=systemctl stop sluzba.socket
Otázka: spustí se ExecStopPost i v případě, kdy se proces korektně sám ukončí? Nebo je v případě, kdy je zavoláno systemctl stop?