我希望相同的启动器快捷方式能够起到开/关开关的作用。
例如,假设我已经创建了一个启动器来使用以下命令启动 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
(请注意,这将破坏任何具有右键单击菜单的启动器)