如何像bash一样暂停和恢复进程

莱斯曼纳

该问题是针对以下问题的后续措施:如何暂停和恢复流程

我已经从gnome-terminal的bash会话中启动了Firefox。

流程树如下所示:

$ ps -e -o pid,ppid,cmd -H
 1828     1   gnome-terminal
26677  1828     bash
27980 26677       /bin/sh /usr/lib/firefox-3.6.15/firefox
27985 27980         /bin/sh /usr/lib/firefox-3.6.15/run-mozilla.sh /usr/lib/firefox-3.6.15/firefox-bin
27989 27985           /usr/lib/firefox-3.6.15/firefox-bin
28012 27989             /usr/lib/firefox-3.6.15/plugin-container /usr/lib/adobe-flashplugin/libflashplayer.so 27989 plugin true

当我击中CTRL+Zbash时,它将暂停Firefox。当我发出命令bg(或fg)时,它将恢复Firefox。这是预期的。

当我kill -s SIGTSTP 27980在另一个终端中发出命令时,它将[1]+ Stopped firefox在第一个终端中打印该行(就像我按下时一样CTRL+Z),但是它不会挂起firefox。我假设它只是挂起了shell脚本。

当我kill -s SIGTSTP 27989在另一个终端中发出命令(注意PID)时,它将暂停Firefox。第一终端不注意这一点。

bash如何挂起整个进程树?它只是遍历所有树和SIGTSTP的所有子级吗?

怪兽龙

Shell作业位于“进程组”中;查看PGRP扩展ps输出中的这些用于作业控制和确定谁“拥有”终端机(真实或私有)。

POSIX(取自系统V)使用否定的进程ID表示进程组,因为该进程组由组中的第一个进程标识(“进程组负责人”)。因此,您将ps用来确定流程组,然后kill -s TSTP "-$pgrp"(尝试ps -u"$USER" -opid,ppid,pgrp,cmd。)

在您的进程树中,该进程组以启动的firefox脚本开始bash,因此该进程组将为27980,该命令将为kill -s TSTP -27980

当然,要恢复流程组,请发出kill -s CONT -- -27980

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何像iOS键盘一样显示和隐藏UIPickerView?

来自分类Dev

如何像iOS 7 iPad App Store一样同时翻转和放大UIView?

来自分类Dev

如何通过符号宏定义将像(和)一样工作的符号?

来自分类Dev

像Nokogiri gem一样,如何使用Ox gem打开,解析和处理XML文件?

来自分类Dev

如何定义可以像堆栈一样弹出和弹出的LIST?

来自分类Dev

Eclipse如何生成代码?像getter和setter一样

来自分类Dev

如何在Bash中像拉链一样合并两个数组?

来自分类Dev

如何像转盘一样将标签滑入和滑出

来自分类Dev

如何像熊猫老板一样切片,排名和扭动

来自分类Dev

bash,像以前一样重置终端输出

来自分类Dev

如何像Google Apps一样在Google地图中同时显示MarkerIcon和Title?

来自分类Dev

如何像bash一样在JavaScript中进行迭代?

来自分类Dev

benferroni调整后的p值-如何像OR和CI一样将其绑定而不求幂?

来自分类Dev

如何像普通的ViewController一样使SwiftUI Canvas绘制顶部和底部?

来自分类Dev

如何像函数参数一样传递和接收json

来自分类Dev

如何使用Openxml像MS单词一样对齐段落的verticaly和horizontal?

来自分类Dev

Bash像zsh一样自动完成

来自分类Dev

linux是否像Windows 8一样具有暂停/恢复功能?

来自分类Dev

像bash一样在awk中使用随机函数

来自分类Dev

如何像Vim的ctrlp插件一样模糊bash中的完整文件名?

来自分类Dev

像vmware Player一样暂停QEMU / KVM VM(将RAM和CPU状态保存到磁盘)?

来自分类Dev

如何在管道链中像常规命令一样使用bash函数?

来自分类Dev

像老板一样使用bash-协同作用

来自分类Dev

如何像Spatry一样缩短您的命令行提示符(bash)呢?

来自分类Dev

bash,像以前一样重置终端输出

来自分类Dev

如何等待Elixir产生的进程像Ruby的Thread#join一样结束

来自分类Dev

Zsh 像 bash 一样着色

来自分类Dev

像事件一样的 Windows 进程间同步?

来自分类Dev

如何像bash脚本一样发财

Related 相关文章

  1. 1

    如何像iOS键盘一样显示和隐藏UIPickerView?

  2. 2

    如何像iOS 7 iPad App Store一样同时翻转和放大UIView?

  3. 3

    如何通过符号宏定义将像(和)一样工作的符号?

  4. 4

    像Nokogiri gem一样,如何使用Ox gem打开,解析和处理XML文件?

  5. 5

    如何定义可以像堆栈一样弹出和弹出的LIST?

  6. 6

    Eclipse如何生成代码?像getter和setter一样

  7. 7

    如何在Bash中像拉链一样合并两个数组?

  8. 8

    如何像转盘一样将标签滑入和滑出

  9. 9

    如何像熊猫老板一样切片,排名和扭动

  10. 10

    bash,像以前一样重置终端输出

  11. 11

    如何像Google Apps一样在Google地图中同时显示MarkerIcon和Title?

  12. 12

    如何像bash一样在JavaScript中进行迭代?

  13. 13

    benferroni调整后的p值-如何像OR和CI一样将其绑定而不求幂?

  14. 14

    如何像普通的ViewController一样使SwiftUI Canvas绘制顶部和底部?

  15. 15

    如何像函数参数一样传递和接收json

  16. 16

    如何使用Openxml像MS单词一样对齐段落的verticaly和horizontal?

  17. 17

    Bash像zsh一样自动完成

  18. 18

    linux是否像Windows 8一样具有暂停/恢复功能?

  19. 19

    像bash一样在awk中使用随机函数

  20. 20

    如何像Vim的ctrlp插件一样模糊bash中的完整文件名?

  21. 21

    像vmware Player一样暂停QEMU / KVM VM(将RAM和CPU状态保存到磁盘)?

  22. 22

    如何在管道链中像常规命令一样使用bash函数?

  23. 23

    像老板一样使用bash-协同作用

  24. 24

    如何像Spatry一样缩短您的命令行提示符(bash)呢?

  25. 25

    bash,像以前一样重置终端输出

  26. 26

    如何等待Elixir产生的进程像Ruby的Thread#join一样结束

  27. 27

    Zsh 像 bash 一样着色

  28. 28

    像事件一样的 Windows 进程间同步?

  29. 29

    如何像bash脚本一样发财

热门标签

归档