Если вы нажмете на значок, перетащите его за панель (вправо), а затем поместите туда, где хотите, чтобы она работала. Вы просто не можете щелкнуть и перетащить в панель, иначе вы получите результаты, которые вы описали, где логотипы просто прокручиваются вверх и вниз по панели
Вы можете использовать, например. 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
Я не тестировал, как веб-сервер может реагировать на это переключение ссылок, возможно, также возможно, что он кэширует материал, и изменения не будут немедленно переданы , без понятия. Вы должны попробовать.
Вы можете использовать, например. 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
Я не тестировал, как веб-сервер может реагировать на это переключение ссылок, возможно, также возможно, что он кэширует материал, и изменения не будут немедленно переданы , без понятия. Вы должны попробовать.