从终端运行多个gui程序而不会丢失它们
我为bash脚本制作了一个非常简单(但对我有用)。 它只是打开我手动打开的一些应用程序。 这是代码:
#!/bin/bash netbeans & mysql-workbench & opera & chromium-browser &
现在当我关闭终端时,脚本打开的应用程序继续运行。 这是正常的,这就是“&”的用途。
我的问题是:有没有办法自动运行这些应用程序,但也自动关闭它们? 如果他们仍然连接到终端,他们会关闭,但是当我删除&符号时它只运行第一个应用程序。
谢谢
您可以在.bashrc
文件中使用这两个函数来启动和关闭它们,只需使用kapp
和kapp
调用它们:
lapp(){ netbeans & mysql-workbench & opera & chromium-browser & } kapp() { pkill 'netbeans|mysql-workbench|opera|chromium-browser' } #Or kapp() { killall 'netbeans|mysql-workbench|opera|chromium-browser' }
信息:
- 记得在添加这些函数后运行
source .bashrc
(来源: man pkill
)
您必须获取脚本以便在当前shell中执行这些命令,而不是在为脚本启动的forked-off shell中执行:
. ./foo.sh
然后,这些后台进程将成为shell的作业控制的一部分。
使用函数可能更容易。 例如,在你的bashrc中添加:
foo () { netbeans & mysql-workbench & opera & chromium-browser & }
然后,当你从bash运行foo
时,它将运行当前shell中的命令。