Я пытаюсь написать сценарий, который включит xampp start
и xampp stop
с одним и тем же сценарием без необходимости писать в терминале каждый раз.
Чтобы начать xampp
, я пишу в консоли:
sudo /opt/lampp/lampp start
sudo /opt/lampp/lampp stop
Как сделать исполняемый скрипт, который позволяет xampp
запускаться и останавливаться одновременно при двойном щелкнул? Любая идея всегда приветствуется.
Необходимо будет сделать 2 вещи получить то, что Вы хотите:
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
А Создают .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
без этого сценария, и Вы будете в порядке.
Примечание: необходимо будет ввести пароль для запуска ярлыка. Вы могли обойти это, но это не было Вашим вопросом, таким образом, я не объясню это здесь.
Можно использовать сценарий как это,
#!/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
без пароля.
grep
к /dev/null
, можно использовать -q
опция вместо этого. 2. я просто протестировал его успешно от наутилуса с помощью run
опция. (выполненный в терминале не нужно). Наконец , я не могу прокомментировать результат, который Вы получили после модификации сценария собой. P.S. Как я don' t имеют lampp
, я попробовал его /usr/bin/vlc
и использовал pkill vlc
для уничтожения его.
– Rene Wooller
14.05.2020, 19:54
test.sh
находится в Вашем Корневом каталоге, путь~/test.sh
и если это находится в каталоге " .config" путь~/.config/test.sh
. То же идет для значка. – Jack Yu 14.05.2020, 19:54sudo apt-get install gksu
для установки " gksu" но поскольку это просит Ваш пароль, это должно быть установлено... – VonC 14.05.2020, 19:55