Я пытаюсь создать веб-страницу, которая показывает, активен ли процесс или нет, но как я могу автоматизировать проверку процесса и записать ее в файл .txt или .html, чтобы я мог показать его на своем сайте?
Вы можете использовать, например, pgrep
для поиска процессов с конкретным именем.
В качестве примера, я могу увидеть, работает ли музыкальный проигрыватель Rhythmbox, набрав:
$ pgrep rhythmbox
827
Если напечатаны какие-либо числа (и статус выхода равен 0), это означает, что нашел соответствующий процесс. В противном случае вывод будет пустым, и вы получите ненулевой статус выхода.
Теперь мы можем просто запускать это снова и снова в бесконечном цикле. Чтобы сэкономить ресурсы, мы ждем секунду между каждой итерацией. В зависимости от того, найден соответствующий процесс или нет, этот маленький скрипт ниже запишет yes
или no
в файл status.txt
.
#!/bin/bash
while sleep 1 ; do
if pgrep rhythmbox &>/dev/null ; then
echo "yes" > status.txt
else
echo "no" > status.txt
fi
done
Вы также можете сделать что-нибудь более полезное внутри цикла, например, например. переключение символических ссылок между двумя готовыми HTML-документами. Предположим, у нас есть running.html
и stopped.html
, и мы хотим иметь правильный из них, связанный как status.html
, который затем может обслуживаться вашим веб-сервером. Это может выглядеть так:
#!/bin/bash
while sleep 1 ; do
if pgrep rhythmbox &>/dev/null ; then
ln -s running.html status.html
else
ln -s stopped.html status.html
fi
done
Я не проверял, как веб-сервер может реагировать на это переключение каналов, хотя также возможно, что он кеширует данные, и изменения не будут немедленно обновлены, без понятия. Вы должны попробовать это.