在下一个命令完成后,如何停止从bash开始的后台进程?

sid*_*com 2 bash shell shutdown background-process

如果我关闭Firefox窗口或者以某种方式停止此脚本,我怎么能管理这里作为后台进程调用的morbo-server会自动关闭/终止?

#!/bin/bash

morbo Mojolicious_Lite.pl &

firefox -new-window http://localhost:3000/
Run Code Online (Sandbox Code Playgroud)

Mar*_*gen 7

好的,我们来解决这个问题吧.

#!/bin/bash
morbo Mojolicious_Lite.pl & P=$!
trap "kill $P" INT # maybe you want EXIT here too?
firefox -new-window http://localhost:3000/
wait
Run Code Online (Sandbox Code Playgroud)

这一个应该工作...当Firefox退出shell会等待,然后可以按Ctrl-C中断剩余的作业(morbo) - 在这种情况下陷阱杀死他们.

您可以直观地测试它(即查看执行的内容)

bash -x run.sh
Run Code Online (Sandbox Code Playgroud)

假设您的脚本名为run.sh;)