feat(service): implement PID-file based service management (DAW/furt#100)

- Replace unreliable pexp patterns with PID-file approach
- Add graceful shutdown with timeout handling in rc.d script
- Implement process validation after startup
- Add SIGHUP config reload support for Unix services
- Ensure PID-file cleanup on service exit
- Update systemd service to use PIDFile parameter

Platform improvements:
- OpenBSD: rc_check/rc_stop functions now PID-file based
- Linux: systemd Type=forking with proper PIDFile support
- Cross-platform: /var/run/furt.pid standard location

Resolves service status detection issues where rcctl check showed
(failed) despite running service due to process name variations
across platforms.
This commit is contained in:
michael 2025-09-05 22:30:07 +02:00
parent ddbb232de2
commit 25a709ebbe
3 changed files with 75 additions and 5 deletions

View file

@ -6,7 +6,8 @@ After=network.target
Type=forking
User=furt
Group=furt
ExecStart=/usr/local/share/furt/scripts/start.sh start
ExecStart=/usr/local/share/furt/scripts/start.sh
PIDFile=/var/run/furt.pid
WorkingDirectory=/usr/local/share/furt
Restart=always
RestartSec=5