加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

macos – Bash:如何显示作业进程的完整列表并将其杀死

发布时间:2020-12-15 17:02:15 所属栏目:安全 来源:网络整理
导读:我发出命令task1 task2 dir / task3 Task1永远不会结束,所以我们将它发送到后台. Task2更改目录 Task3依赖于task2完成. 发布:工作-l将显示: [1]- 39281 Running task1 [2]+ 39282 Running task2 task3 发布:ps将显示: 39281 ttys002 0:04.17 task1 39282
我发出命令task1& task2 dir /&& task3&

> Task1永远不会结束,所以我们将它发送到后台.
> Task2更改目录
> Task3依赖于task2完成.

发布:工作-l将显示:

[1]- 39281 Running                 task1 &
[2]+ 39282 Running                 task2 && task3 &

发布:ps将显示:

39281 ttys002    0:04.17 task1  
39282 ttys002    0:00.00 task2
39283 ttys002    0:03.66 task3

问题:

>有没有办法在jobs命令输出中显示task3?
>为什么task3不作为自己的工作出现?
>有没有办法同时杀死所有三个任务?
>如果我杀死task2,为什么task3不会死?
>有更好的方法吗?

目标:发出一行命令来初始化工作流并将其发送到后台.准备就绪时,一次性杀死所有已启动的进程.

对于上下文而言,在我的情况下,task1是一个带有livereload的grunt任务,所以它应该被发送到后台. Task2更改目录,以便task3可以监视该目录中更改的文件.

使用bash和 job control可以同时或多或少地杀死最近的两个后台任务
kill %% %-

如果您希望作业不显示cd部分,则需要更改当前shell中的目录,这意味着隔离cd表达式:

sleep 10000 & cd .. && { sleep 20000 & }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读