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

Nir*_*mik 6 shortcuts launcher

我希望相同的启动器快捷方式就像一个 ON/OFF 开关。

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

gksudo /opt/lampp/lampp start
Run Code Online (Sandbox Code Playgroud)

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

  • 如果 LAMPP 未打开,则启动器应执行上述命令并启动 LAMPP。

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

    gksudo /opt/lampp/lampp stop
    
    Run Code Online (Sandbox Code Playgroud)

    并停止lampp。

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

我可以这样做吗?如何?

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

Mat*_*teo 6

我注意到lampp启动proftpd所以我们可以修改一个检查正在运行的服务的scirpt,如果该服务正在运行那么它将停止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
Run Code Online (Sandbox Code Playgroud)

这也应该发送它开始和停止的通知。

将文件另存为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=
Run Code Online (Sandbox Code Playgroud)

或者如果你想你可以为不同的功能制作一个右键列表来实现没有脚本的启动和停止功能 -

[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
Run Code Online (Sandbox Code Playgroud)

所以使用一个或另一个,玩得开心。


我还发现他们写了一个控制面板供程序使用-

gksudo /opt/lampp/share/xampp-control-panel/xampp-control-panel.py
Run Code Online (Sandbox Code Playgroud)

我想用其他程序尝试这个,你可以制作脚本来检查它们是否正在运行并杀死它们(警告可能会丢失工作,但对于冻结的程序会很好)例如conky或任何其他程序,主要是。

#!/bin/sh
    SERVICE='conky'

    if ps ax | grep -v grep | grep $SERVICE > /dev/null

    then
        killall conky

    else
        conky

    fi
Run Code Online (Sandbox Code Playgroud)

另存为 conky.sh 放入 /usr/local/bin

接下来是困难的部分,您需要找到 conky.desktop 文件,因此在终端类型中,locate conky.desktop然后导航到该文件夹​​并在 gedit(或您最喜欢的编辑器,可能需要权限,具体取决于它的位置)中编辑桌面文件并替换Exec=Exec=/usr/local/bin/conky.sh(请注意,这会破坏任何具有右键单击菜单的启动器)