我可以让启动器快捷方式根据条件执行不同的操作吗?

我可以让启动器快捷方式根据条件执行不同的操作吗?

我希望相同的启动器快捷方式能够起到开/关开关的作用。

例如,假设我已经创建了一个启动器来使用以下命令启动 LAMPP:

gksudo /opt/lampp/lampp start

这可以正常启动 LAMPP。现在,我想做的是:

  • 如果 LAMPP 没有开启,启动器应该执行上述命令并启动 LAMPP。

  • 如果 LAMPP 已打开,我想执行命令

    gksudo /opt/lampp/lampp stop
    

    并停止 lampp。

我希望这两个命令由同一个启动器执行,其中要执行的命令是根据条件(在上面的例子中,LAMPP 是 ON 还是 OFF)决定的。

我可以这样做吗?怎么做?

我猜想编写一个 bash 脚本,然后让启动器执行该 bash 脚本就可以了。但是我如何检查 LAMPP 是开启还是关闭呢?

答案1

我注意到 lampp 启动了,proftpd所以我们可以修改一个检查正在运行的服务的脚本,如果该服务正在运行,那么它将停止 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并使其可执行 - 右键单击​​ => 属性 => 权限 => 允许作为程序执行文件。


现在使用你喜欢的方法用脚本制作启动器,如何在桌面上创建启动器?

或者我制作了一个包含图标的

放入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(请注意,这将破坏任何具有右键单击菜单的启动器)

相关内容