{% extends "base.html" %} {% block title %}Sysop Service Control Center{% endblock %} {% block head %} {{ super() if super }} {% endblock %} {% block content %}

Service Control Center

Live state of every ANetBBS service and listener — restart, tail logs, kick nodes, watch who's online.
{{ summary.running }}/{{ summary.total }} Services up
{{ summary.listener_problems }} Listener problems
Active connections
just now Auto-refresh: 2s
Web0 Telnet0 SSH0 rlogin0
CPU % per service
Memory (MB)
{% for s in services %}
{{ s.label }}
{{ s.unit }}.service
{{ s.active }}{% if s.sub %}/{{ s.sub }}{% endif %}

{{ s.desc }}

PID {{ s.pid if s.pid != '0' else '—' }} {% if s.since %} · since {{ s.since[:19] }} {% endif %}
CPU RAM Threads
{% if s.ports %} {% set _down = s.ports | selectattr('up', 'equalto', False) | list %} {% set _up = s.ports | selectattr('up', 'equalto', True) | list %}
{% if not _down %} All listeners up ({{ _up|length }}/{{ s.ports|length }}) {% else %} {{ _up|length }}/{{ s.ports|length }} listening — down: {% for p in _down %}{{ p.name }}:{{ p.port }}{% if not loop.last %}, {% endif %}{% endfor %} {% endif %}
{% for p in s.ports %} {{ p.name }}:{{ p.port }}/{{ p.proto }} {% endfor %}
{% endif %}
{% if s.is_running %}
{% else %}
{% endif %}
{% endfor %}
Note: Start / Stop / Restart calls sudo -n systemctl and requires the NOPASSWD entries in /etc/sudoers.d/anetbbs. The installer + update script refresh that file automatically — if a button reports "permission denied," re-run sudo bash update.sh on this host.
NodeSpy — terminal sessions (eye = view screen, door = kick)
SlotUserProtoPage Last actionIdle
Loading…
Online (web + terminal, last 5 min)
{% for s in web_sessions %} {% else %} {% endfor %}
UserPageIPUALast seen
{% if s.user %}{{ s.user.username }}{% else %}?{% endif %} {{ s.page or '' }} {{ s.ip_address or '' }} {{ (s.user_agent or '')[:40] }} {{ s.last_seen.strftime('%H:%M:%S') if s.last_seen else '' }}
Nobody online.
{% endblock %}