在Bash中如何将可执行文件在后台运行

7

我有一个包含长循环的可执行文件,所以想在后台运行它,在Linux中如何使用bash脚本实现呢?

我知道一种方法是使用 Ctrl + z,然后输入 bg,如何在bash脚本中模拟这些按键呢?


在控制台调用脚本时,在其末尾加上 & 符号。 - progsource
请查看 http://unix.stackexchange.com/q/103731/67817 和 http://unix.stackexchange.com/q/104821/67817。 - Tom Fenech
1个回答

11
任何在Linux中可执行的程序都可以按如下方式在后台运行:
 $ ./yourExecutable.exe&

在结尾处添加&字符。(假设yourExecutable.exe在当前工作目录中)
如何稍后终止它?
$ ps -ax | grep yourExecutable.exe

您将会得到以下输出:
9384  pts/7    S+     0:00 grep yourExecutable.exe
25082 pts/7    T      0:00 yourExecutable.exe&

用SIGKILL命令结束第二个进程。这是你在后台执行的那个进程。
$ kill -9 25082

谢谢。如何停止这个后台运行的进程呢? - user4016367
@rudimeier。我从未深入了解过它。谢谢你提供的信息! - 0aslam0
@rudimeier $$当前进程,$! 是上一个生成的后台进程。这是一个很危险的错误。 - Anya Shenanigans
1
关于“如何稍后终止它”:无需搜索进程列表。"$!"是最后一个后台进程的pid。kill $!。另外,jobs列出所有后台进程。还可以参见kill %1fg %1。在man bash中有文档记录,主题为“作业控制”。 - rudimeier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接