This commit is contained in:
PaulVua
2025-05-23 14:08:21 +02:00
parent 1b8dc54fe0
commit 2516a3bd1c
2 changed files with 42 additions and 16 deletions

View File

@@ -197,16 +197,17 @@
<table class="table table-sm table-hover mb-0">
<thead class="table-light">
<tr>
<th style="width: 25%">Service</th>
<th style="width: 30%">Description</th>
<th style="width: 12%">Status</th>
<th style="width: 12%">Enabled</th>
<th style="width: 21%">Actions</th>
<th style="width: 20%">Service</th>
<th style="width: 25%">Description</th>
<th style="width: 15%">Frequency</th>
<th style="width: 10%">Status</th>
<th style="width: 10%">Enabled</th>
<th style="width: 20%">Actions</th>
</tr>
</thead>
<tbody id="services-tbody">
<tr>
<td colspan="5" class="text-center py-3">Loading services...</td>
<td colspan="6" class="text-center py-3">Loading services...</td>
</tr>
</tbody>
</table>
@@ -1015,6 +1016,12 @@ function displayServices(services) {
descCell.className = 'text-muted small';
row.appendChild(descCell);
// Frequency
const freqCell = document.createElement('td');
freqCell.textContent = service.frequency || 'Unknown';
freqCell.className = 'text-primary small fw-bold';
row.appendChild(freqCell);
// Status
const statusCell = document.createElement('td');
const statusBadge = document.createElement('span');
@@ -1061,7 +1068,7 @@ function showServiceError(message) {
const tbody = document.getElementById('services-tbody');
tbody.innerHTML = `
<tr>
<td colspan="5" class="text-center text-danger">
<td colspan="6" class="text-center text-danger">
<i class="bi bi-exclamation-triangle"></i> ${message}
</td>
</tr>

View File

@@ -1027,19 +1027,37 @@ if ($type == "execute_command") {
// Get systemd services status
if ($type == "get_systemd_services") {
try {
// List of NebuleAir services to monitor with descriptions
// List of NebuleAir services to monitor with descriptions and frequencies
$services = [
'nebuleair-npm-data.timer' => 'Collects particulate matter data from NextPM sensor',
'nebuleair-envea-data.timer' => 'Reads environmental data from Envea sensors',
'nebuleair-sara-data.timer' => 'Transmits collected data via 4G cellular modem',
'nebuleair-bme280-data.timer' => 'Monitors temperature and humidity (BME280)',
'nebuleair-mppt-data.timer' => 'Tracks solar panel and battery status',
'nebuleair-db-cleanup-data.timer' => 'Cleans up old data from database'
'nebuleair-npm-data.timer' => [
'description' => 'Collects particulate matter data from NextPM sensor',
'frequency' => 'Every 10 seconds'
],
'nebuleair-envea-data.timer' => [
'description' => 'Reads environmental data from Envea sensors',
'frequency' => 'Every 10 seconds'
],
'nebuleair-sara-data.timer' => [
'description' => 'Transmits collected data via 4G cellular modem',
'frequency' => 'Every 60 seconds'
],
'nebuleair-bme280-data.timer' => [
'description' => 'Monitors temperature and humidity (BME280)',
'frequency' => 'Every 2 minutes'
],
'nebuleair-mppt-data.timer' => [
'description' => 'Tracks solar panel and battery status',
'frequency' => 'Every 2 minutes'
],
'nebuleair-db-cleanup-data.timer' => [
'description' => 'Cleans up old data from database',
'frequency' => 'Daily'
]
];
$serviceStatus = [];
foreach ($services as $service => $description) {
foreach ($services as $service => $serviceInfo) {
// Get service active status
$activeCmd = "systemctl is-active " . escapeshellarg($service) . " 2>/dev/null";
$activeStatus = trim(shell_exec($activeCmd));
@@ -1057,7 +1075,8 @@ if ($type == "get_systemd_services") {
$serviceStatus[] = [
'name' => $service,
'display_name' => $displayName,
'description' => $description,
'description' => $serviceInfo['description'],
'frequency' => $serviceInfo['frequency'],
'active' => $isActive,
'enabled' => $isEnabled
];