mirror of
https://github.com/myronblair/jarvis
synced 2026-07-28 00:34:35 -05:00
Fix Arc Reactor restart: use bash for source, add systemd service, fix deploy
The admin panel restart command used shell_exec which runs /bin/sh (dash on Ubuntu) — dash doesn't support 'source', so the venv never activated and the reactor silently never started. - admin/index.php: wrap restart in bash -c so 'source' works; try systemctl first then fall back to nohup - deploy/jarvis-arc.service: add proper systemd unit so reactor auto-starts on boot and auto-restarts on crash - deploy/jarvis-deploy.sh: install+enable service file when it changes; mkdir log dir before restart; fall back to nohup if systemctl not set up yet Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X8tDRrQqgLjqXebMCBNcP3
This commit is contained in:
@@ -0,0 +1,17 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=JARVIS Arc Reactor
|
||||||
|
After=network-online.target mysql.service
|
||||||
|
Wants=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
WorkingDirectory=/opt/jarvis-arc
|
||||||
|
ExecStart=/opt/jarvis-arc/venv/bin/python3 /opt/jarvis-arc/reactor.py
|
||||||
|
Restart=always
|
||||||
|
RestartSec=10
|
||||||
|
User=root
|
||||||
|
StandardOutput=append:/home/jarvis.orbishosting.com/logs/arc_reactor.log
|
||||||
|
StandardError=append:/home/jarvis.orbishosting.com/logs/arc_reactor.log
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
+12
-3
@@ -80,10 +80,19 @@ while IFS= read -r path; do
|
|||||||
systemctl reload lsws 2>/dev/null || systemctl restart lsws 2>/dev/null
|
systemctl reload lsws 2>/dev/null || systemctl restart lsws 2>/dev/null
|
||||||
log "OLS reloaded for JARVIS deploy"
|
log "OLS reloaded for JARVIS deploy"
|
||||||
|
|
||||||
# Sync reactor.py to runtime location if it changed
|
# Sync reactor.py + service file to runtime location if they changed
|
||||||
if echo "$CHANGED" | grep -q 'deploy/reactor.py'; then
|
if echo "$CHANGED" | grep -q 'deploy/reactor.py\|deploy/jarvis-arc.service'; then
|
||||||
|
mkdir -p /opt/jarvis-arc
|
||||||
cp "$path/deploy/reactor.py" /opt/jarvis-arc/reactor.py
|
cp "$path/deploy/reactor.py" /opt/jarvis-arc/reactor.py
|
||||||
systemctl restart jarvis-arc
|
if echo "$CHANGED" | grep -q 'deploy/jarvis-arc.service'; then
|
||||||
|
cp "$path/deploy/jarvis-arc.service" /etc/systemd/system/jarvis-arc.service
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl enable jarvis-arc
|
||||||
|
log "Arc Reactor service file installed and enabled"
|
||||||
|
fi
|
||||||
|
mkdir -p /home/jarvis.orbishosting.com/logs
|
||||||
|
systemctl restart jarvis-arc 2>/dev/null || \
|
||||||
|
bash -c "pkill -f reactor.py 2>/dev/null; sleep 1; cd /opt/jarvis-arc && source venv/bin/activate && nohup python3 reactor.py >> /home/jarvis.orbishosting.com/logs/arc_reactor.log 2>&1 &"
|
||||||
log "Arc Reactor updated and restarted (reactor.py changed)"
|
log "Arc Reactor updated and restarted (reactor.py changed)"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ if ($action) {
|
|||||||
j(['ok'=>true,'msg'=>ucwords(str_replace('_',' ',$wId)).' triggered']);
|
j(['ok'=>true,'msg'=>ucwords(str_replace('_',' ',$wId)).' triggered']);
|
||||||
} else { bad('Unknown cron worker'); }
|
} else { bad('Unknown cron worker'); }
|
||||||
} elseif ($wType === 'daemon' && $wId === 'arc_reactor' && $wAction === 'restart') {
|
} elseif ($wType === 'daemon' && $wId === 'arc_reactor' && $wAction === 'restart') {
|
||||||
shell_exec('pkill -f reactor.py 2>/dev/null; sleep 1; cd /opt/jarvis-arc && source venv/bin/activate && nohup python3 reactor.py >> /home/jarvis.orbishosting.com/logs/arc_reactor.log 2>&1 &');
|
shell_exec('bash -c "mkdir -p /home/jarvis.orbishosting.com/logs; systemctl restart jarvis-arc 2>/dev/null || (pkill -f reactor.py 2>/dev/null; sleep 1; cd /opt/jarvis-arc && source venv/bin/activate && nohup python3 reactor.py >> /home/jarvis.orbishosting.com/logs/arc_reactor.log 2>&1 &)"');
|
||||||
j(['ok'=>true,'msg'=>'Arc Reactor restarting']);
|
j(['ok'=>true,'msg'=>'Arc Reactor restarting']);
|
||||||
} else { bad('Invalid worker action'); }
|
} else { bad('Invalid worker action'); }
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user