fix(deployment): resolve OpenBSD rc.d service tracking and deployment workflow
- Fix OpenBSD service file pexp pattern to match actual running process - Set pexp after sourcing rc.subr to prevent automatic override - Update deployment script process detection from broken furt-lua pattern - Add TTY-based daemon detection in start.sh for service vs development mode - Implement comprehensive deployment workflow with backup and health checks - Enable proper rcctl start/stop/check functionality on OpenBSD Root cause: OpenBSD rc.subr automatically generates pexp from daemon+flags, but actual process (/usr/local/bin/lua src/main.lua) differs from wrapper (start.sh). Solution: Override pexp after rc.subr with correct Lua pattern. Deployment script also had incorrect process detection pattern looking for 'furt-lua' string that doesn't exist in process name. Technical details: - Service file: pexp="/usr/local/bin/lua src/main.lua.*" after rc.subr - Process detection: pgrep -u _furt -f 'src/main.lua' - TTY detection: [ ! -t 0 ] for daemon vs interactive mode - Complete deployment workflow with stop/sync/start/health-check cycle Fixes #77 - OpenBSD rc.d service file problem resolved Related: Deployment automation now fully functional karl→walter
This commit is contained in:
parent
c22b3aa691
commit
0abc9791d3
4 changed files with 40 additions and 6 deletions
|
|
@ -254,7 +254,7 @@ rollback_deployment() {
|
|||
|
||||
get_service_status() {
|
||||
# Check if furt process is actually running (regardless of rcctl status)
|
||||
if walter_exec "ps aux | grep -v grep | grep -q '_furt.*lua.*main.lua'"; then
|
||||
if walter_exec "pgrep -u _furt -f 'src/main.lua' >/dev/null 2>&1"; then
|
||||
echo "running"
|
||||
else
|
||||
echo "stopped"
|
||||
|
|
@ -424,17 +424,20 @@ fix_service_file() {
|
|||
log_info "Creating correct service file..."
|
||||
walter_exec_as_root "sh -c 'cat > /etc/rc.d/furt << \"EOF\"
|
||||
#!/bin/ksh
|
||||
|
||||
daemon=\"$TARGET_DIR/scripts/start.sh\"
|
||||
daemon_user=\"$SERVICE_USER\"
|
||||
daemon_cwd=\"$TARGET_DIR\"
|
||||
daemon_flags=\"start\"
|
||||
pexp=\"lua.*main.lua\"
|
||||
|
||||
. /etc/rc.d/rc.subr
|
||||
rc_bg=YES
|
||||
|
||||
# pexp NACH rc.subr überschreiben (Fix für OpenBSD Issue #77)
|
||||
pexp=\"/usr/local/bin/lua src/main.lua.*\"
|
||||
|
||||
rc_cmd \$1
|
||||
EOF'"
|
||||
|
||||
|
||||
# Make service file executable
|
||||
walter_exec_as_root "chmod +x /etc/rc.d/furt"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue