1)创建一个简单的 bash 脚本开始lampp

1)创建一个简单的 bash 脚本开始lampp

我正在尝试编写一个脚本,该脚本可以启用xampp startxampp 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

相关内容