Могу ли я заставить ярлык запуска выполнять различные действия в зависимости от условия

То, что я хочу сделать, довольно просто понять.

Я хочу, чтобы тот же ярлык запуска действовал как переключатель ВКЛ / ВЫКЛ, например.

Например, предположим, что я создал модуль запуска LAMPP с помощью команды gksudo /opt/lampp/lampp start

Это правильно работает для запуска lampp. Теперь, что я хочу сделать, так это: если LAMPP не включен, программа запуска должна выполнить вышеуказанную команду и запустить lampp. При включенном lampp я хочу, чтобы ti выполнил команду gksudo /opt/lampp/lampp stop и остановил lampp.

Я хочу, чтобы эти 2 команды выполнялись одним и тем же модулем запуска, где команда, подлежащая выполнению, определяется на основе условия (LAMPP включен или выключен в приведенном выше примере)

Могу ли я сделать это ? и как?

Я думаю, что написать сценарий bash, а затем заставить программу запуска выполнить сценарий bash, сделает это. Но тогда как мне проверить, что lampp включен или выключен?

5
задан 29 June 2012 в 16:48

1 ответ

Я заметил, что 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]

0
ответ дан 29 June 2012 в 16:48

Другие вопросы по тегам:

Похожие вопросы: