我正在尝试编写一个脚本,该脚本可以启用xampp start
并xampp stop
使用相同的脚本,而不必每次都在终端中写入。
首先xampp
,我在控制台中写入:
sudo /opt/lampp/lampp start
sudo /opt/lampp/lampp stop
如何制作一个可执行脚本,允许xampp
双击时同时启动和停止?任何想法都欢迎。
答案1
你需要做两件事来得到你想要的东西:
1)创建一个简单的 bash 脚本开始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)创建快捷方式将启动该脚本(例如在桌面上):
A)
.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
=>将两个 /PATH/TO/THE/... 替换为其他内容。图标存储在其中
/usr/share/icons/
,脚本的最佳存放位置是您的 HOME 文件夹,可能隐藏(通过.
在名称开头添加 来隐藏)。C)使其可执行:
sudo chmod +x ~/Desktop/Lampp.desktop
注意:脚本不是真的检查是否lampp
正常工作,它正在使用一个临时文件(重新启动时消失),如果您使用过该脚本一次(意味着它已启动),则包含 1,如果您未使用过该脚本(意味着它未启动),则包含 0。这是什么意思?如果您希望事情正常运转,则必须仅使用此脚本:lampp
没有此脚本就不要启动,这样就没问题了。
注意:您必须输入密码才能启动快捷方式。您可以绕过该步骤,但这不是您的问题,所以我不会在这里解释。
答案2
你可以使用这样的脚本,
#!/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
。