У меня на RaspberryPi 4 есть веб-сервер Apache, на котором написана программа, написанная на Python, которая включает матрицу красных светодиодов 8x8. У меня есть страница HTML и PHP на веб-сервере, поэтому я могу удаленно выполнить этот скрипт. HTML - это всего лишь 2 кнопки, и при нажатии кнопки происходит переход к этой программе PHP:
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
if ($_SERVER['REQUEST_METHOD'] == "POST" and isset($_POST['on']))
{
lightOn();
} elseif ($_SERVER['REQUEST_METHOD'] == "POST" and isset($_POST['off']))
{
lightOff();
}
function lightOn()
{
$command = escapeshellcmd('sudo python3 led_display.py');
$output = shell_exec($command);
header('Location: index.html');
exit;
}
function lightOff()
{
$command = escapeshellcmd('');
$output = shell_exec($command);
header('Location: index.html');
exit;
}
?>
Эта программа PHP просто распознает, какая из 2 кнопок была нажата и пресс выполняет функцию. Для функции lightOn () это просто, поскольку я просто выполняю скрипт, который управляет светодиодной матрицей 8x8. Однако я хочу, чтобы пользователь мог в любой момент остановить скрипт, нажав другую кнопку. В обычном интерфейсе командной строки я бы набрал 'Control + c', чтобы остановить любой запущенный скрипт. Как мне добиться этого в PHP через shell_exe c или любым другим способом?