Как написать скрипт, который будет запускать и останавливать xampp

Я пытаюсь написать сценарий, который включит xampp start и xampp stop с одним и тем же сценарием без необходимости писать в терминале каждый раз.

Чтобы начать xampp, я пишу в консоли:

sudo /opt/lampp/lampp start sudo /opt/lampp/lampp stop

Как сделать исполняемый скрипт, который позволяет xampp запускаться и останавливаться одновременно при двойном щелкнул? Любая идея всегда приветствуется.

2
задан 14.05.2020, 19:52

2 ответа

Необходимо будет сделать 2 вещи получить то, что Вы хотите:

1) Создают простой сценарий удара для запуска lampp

, я записал его для Вас! Это запускается lampp, если это не запускается и останавливает его, если это уже запускается:

#!/bin/bash                                           ##This is a bash script

                                                      ##PREREQUISITES
if [[ ! -f /tmp/lampp-startstop ]] ; then             # if temp file doesn't exist
 echo 0 > /tmp/lampp-startstop 2>&1                   # create it and write 0 in it
fi

                                                      ##IF NOT RUNNING
if [ "`cat /tmp/lampp-startstop`" == "0" ] ; then     # if temp file contains 0
 sudo /opt/lampp/lampp start                          # start lampp
 echo 1 > /tmp/lampp-startstop 2>&1                   # write 1 in the temp file
 notify-send "Lampp" "Program started." -i xampp      # send a notification
 exit 0                                               # and exit
fi

                                                      ##IF RUNNING
if [ "`cat /tmp/lampp-startstop`" == "1" ] ; then     # if temp file contains 1
 sudo /opt/lampp/lampp stop                           # stop lampp
 echo 0 > /tmp/lampp-startstop 2>&1                   # write 0 in the temp file
 notify-send "Lampp" "Program stopped." -i xampp      # send a notification
 exit 0                                               # and exit
fi

2) Создают ярлык , который запустит тот сценарий (на Рабочем столе, например):

  • А Создают .desktop файл на Рабочем столе:

    gedit ~/Desktop/Lampp.desktop 
    
  • B) Вводят следующее в него:

    [Desktop Entry]
    Name=Lampp
    Comment=Start/Stop Lampp
    Exec=gksu bash /PATH/TO/THE/SCRIPT
    Icon=PATH/TO/THE/ICON
    Terminal=false
    Type=Application
    

    => Remplace два/PATH/TO/THE/... чем-то. Значки хранятся в /usr/share/icons/, и хорошее место для сценария было бы в Вашей ДОМАШНЕЙ папке, возможно, скрытый (скройтесь путем добавления . в начале его имени).

  • C) Делают его исполняемым файлом:

    sudo chmod +x ~/Desktop/Lampp.desktop
    
<час>

Примечание: сценарий не действительно проверка, если lampp работает, это использует временный файл (исчезает в перезагрузке), содержащий 1, если Вы использовали сценарий однажды (значение, что это запускается), и 0, если Вы не использовали сценарий (значение, что это не запускается). Что это означает? То, что необходимо только использовать этот сценарий, если Вы хотите вещи работать: не запускайте lampp без этого сценария, и Вы будете в порядке.

Примечание: необходимо будет ввести пароль для запуска ярлыка. Вы могли обойти это, но это не было Вашим вопросом, таким образом, я не объясню это здесь.

4
ответ дан 14.05.2020, 19:53
  • 1
    я попробовал Вашу часть кода и сохранил его в test.sh.whn, я выполняю тот сценарий его выполнение успешно. но когда lampp.desktop файл сохранен с Вашим кодом его выяснение пароля пользователя и его начинающий администратор, но thn никакой ответ. failing.i думают, что проблема находится в .desktop файле с EXEC=gksu и путем значков. – VonC 14.05.2020, 19:54
  • 2
    lol. у меня есть chnaged, которые соединяют каналом к полному пути .sh file.let путь значков быть удаленными, поскольку это не произведет execution.but все еще никакой success.its выяснение xampp пароля после ввода его выхода. – OzgurH 14.05.2020, 19:54
  • 3
    необходимо заменить "/PATH/TO/THE" с реальным путем. Например, если сценарий test.sh находится в Вашем Корневом каталоге, путь ~/test.sh и если это находится в каталоге " .config" путь ~/.config/test.sh. То же идет для значка. – Jack Yu 14.05.2020, 19:54
  • 4
    попытайтесь удалить к " notify-send" строки, это иногда плохо отвечает на gksu выполнение? – Abhishek Jain 14.05.2020, 19:55
  • 5
    Вы можете также sudo apt-get install gksu для установки " gksu" но поскольку это просит Ваш пароль, это должно быть установлено... – VonC 14.05.2020, 19:55

Можно использовать сценарий как это,

#!/bin/bash
#checks if the process is already running or not
ps ax | grep "/opt/lampp/lamp[p]" > /dev/null
#if the process is running exit status $?=0 
if [ $? -eq 0 ]; then
#interactively states the running status of the process and asks permission to
#proceed in a zenity pop-up box
    zenity --question --text="Process is running. select \"yes\" to stop"
    if [ $? -eq 0 ]; then
#stop the running process on approval
    sudo /opt/lampp/lampp stop
    else
        exit 0
    fi
else
#interactively states the running status of the process and asks permission to
#proceed in a zenity pop-up box
    zenity --question --text="Process is not running. select \"yes\" to start"
    if [ $? -eq 0 ]; then
#starts the process on approval
        sudo /opt/lampp/lampp start
    else
        exit 0
    fi
fi

Сохраняют сценарий. Дайте ему разрешение выполнения,

chmod +x <script_name>

Это должно дать Вам Run опция при двойном щелчке по нему. При необходимости чтобы можно было сделать .desktop файл для выполнения его.

Примечание: См. этот ответ для выполнения sudo /opt/lampp/lampp без пароля.

3
ответ дан 14.05.2020, 19:54
  • 1
    1. , Если Вы испытываете какие-либо затруднения из-за перенаправления вывода grep к /dev/null, можно использовать -q опция вместо этого. 2. я просто протестировал его успешно от наутилуса с помощью run опция. (выполненный в терминале не нужно). Наконец , я не могу прокомментировать результат, который Вы получили после модификации сценария собой. P.S. Как я don' t имеют lampp, я попробовал его /usr/bin/vlc и использовал pkill vlc для уничтожения его. – Rene Wooller 14.05.2020, 19:54
  • 2
    к сожалению, Ваш сценарий doesn' t работают над моим " lubuntu": сама команда grep получена, и lampp всегда кажется запущенным. Таким образом, я заменяю команду PS: PS aux | grep/opt/lampp | grep-v grep, Но запускается или останавливается, команды не являются запуском в моей системе. Само сообщение появляется, но никакая команда не работает. Я должен выполнить сценарий от терминала. И если я выполняю сценарий непосредственно из файлового менеджера, он спрашивает меня, если я хочу работать в терминале. Таким образом, я нажимаю на " terminal" и ничего не произошло. Таким образом, я должен открыть вручную терминал и запустить вручную команду. Не забава. Таким образом, сценарий бесполезен. – cglacet 14.05.2020, 19:54

Теги

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