То, что я хочу сделать, довольно просто понять.
Я хочу, чтобы тот же ярлык запуска действовал как переключатель ВКЛ / ВЫКЛ, например.
Например, предположим, что я создал модуль запуска LAMPP с помощью команды gksudo /opt/lampp/lampp start
Это правильно работает для запуска lampp. Теперь, что я хочу сделать, так это: если LAMPP не включен, программа запуска должна выполнить вышеуказанную команду и запустить lampp. При включенном lampp я хочу, чтобы ti выполнил команду gksudo /opt/lampp/lampp stop
и остановил lampp.
Я хочу, чтобы эти 2 команды выполнялись одним и тем же модулем запуска, где команда, подлежащая выполнению, определяется на основе условия (LAMPP включен или выключен в приведенном выше примере)
Могу ли я сделать это ? и как?
Я думаю, что написать сценарий bash, а затем заставить программу запуска выполнить сценарий bash, сделает это. Но тогда как мне проверить, что lampp включен или выключен?
Я заметил, что lampp запускается proftpd
, поэтому мы можем изменить scirpt, который проверяет работающую службу, если эта служба будет работать, то она остановит lampp, я изменил скрипт здесь - http: // www .anyexample.com / linux_bsd / bash / check_if_program_is_running_with_bash_shell_script.xml
Поэтому сначала создайте пустой текстовый файл или откройте gedit и вставьте этот код-
#!/bin/sh
SERVICE='proftpd'
if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
gksudo /opt/lampp/lampp stop && notify-send -i /opt/lampp/htdocs/xampp/img/logo-small.gif "XAMPP stopped."
else
gksudo /opt/lampp/lampp start && notify-send -i /opt/lampp/htdocs/xampp/img/logo-small.gif "XAMPP started."
fi
Это также должно отправьте уведомление, что оно запускается и останавливается.
Сохраните файл как lampp.sh
и сделайте его исполняемым - щелкните правой кнопкой мыши => Свойства => Разрешения => Разрешить запуск файла как программы.
Теперь используйте ваш любимый метод для создания панели запуска со сценарием, Как я могу создавать панели запуска на моем рабочем столе?
Или я создал метод, который включает значок- [ 1122]
Поместите lampp.sh
в /usr/local/bin
Создайте файл с именем Lampp.desktop
и вставьте его в него -
[Desktop Entry]
Version=1.0
Type=Application
Name=Lampp
Comment=
Exec=/usr/local/bin/lampp.sh
Icon=/opt/lampp/htdocs/xampp/img/logo-small.gif
Path=
Terminal=false
StartupNotify=true
GenericName=
Или, если хотите, можете составьте список правых кликов для различных функций, чтобы выполнить функцию запуска и остановки без сценария -
[Desktop Entry]
Version=1.0
Type=Application
Name=Lampp
Comment=
Exec=gksudo lampp
Icon=/opt/lampp/htdocs/xampp/img/logo-small.gif
Path=/opt/lampp
Terminal=false
StartupNotify=true
GenericName=
X-Ayatana-Desktop-Shortcuts=NewWindow;Start;Stop;Restart;Security
[Start Shortcut Group]
Name=Start
Exec=start
TargetEnvironment=Unity
[Stop Shortcut Group]
Name=Stop
Exec=stop
TargetEnvironment=Unity
[Restart Shortcut Group]
Name=Restart
Exec=restart
TargetEnvironment=Unity
[Security Shortcut Group]
Name=Security
Exec=security
TargetEnvironment=Unity
Так что используйте одну или другую, получайте удовольствие.
Также я обнаружил, что они написали панель управления для использования этой программы-
gksudo /opt/lampp/share/xampp-control-panel/xampp-control-panel.py
Я хочу попробовать это с другими программами, вы можете создавать скрипты, которые будут проверять, если запущены и убьют их (предупреждение может потерять работу, но было бы неплохо для замороженных программ) Скажем, например, conky
или любая другая программа, в основном.
#!/bin/sh
SERVICE='conky'
if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
killall conky
else
conky
fi
сохранить как conky.sh положить в /usr/local/bin
Далее идет сложная часть, вам нужно найти файл conky.desktop, поэтому в терминале типа locate conky.desktop
перейдите в эту папку и отредактируйте файл рабочего стола в gedit (или в вашем любимом редакторе, могут потребоваться привилегии в зависимости от того, где он находится) и замените строку Exec=
на Exec=/usr/local/bin/conky.sh
(обратите внимание, что это сломает любой из модулей запуска, которые имеют меню правой кнопки мыши) [ 1130]