Questions tagged «jobs»

Shell中的作业控制



4
Bash中延迟挂起(Ctrl-Y)的目的是什么?
Bash手册页的整个部分仅适用于: 如果运行bash的操作系统支持作业控制,则bash包含使用它的工具。在进程运行时键入暂停字符(通常为^ Z,Control-Z)将导致该进程停止并将控制权返回给bash。 键入延迟的挂起字符(通常为^ Y,Control-Y)会导致该进程在尝试从终端读取输入时停止,并将控件返回到bash。 然后,用户可以使用bg 命令在后台继续执行该作业的状态,fg命令在前台继续执行,或使用kill命令将其删除。^ Z立即生效,并具有额外的副作用,导致丢弃待处理的输出和提前输入。 我从未用过Ctrl- Y; 我只是了解而已。我只用Ctrl- Z(暂停)就可以了。 我试图想象此选项的用途。什么时候有用? (请注意,并非所有Unix变体都具有此功能。Solaris和FreeBSD上存在此功能,而Linux上不存在。相应的设置为stty dsusp。) 也许少主观:有没有什么可以完成Ctrl- Y不能用很容易实现的Ctrl- Z?


4
为什么有些命令将终端“挂起”直到完成?
有时您从终端运行一个程序,例如lxpanel†。终端不会将您带回到提示,它将挂起。您可以按Ctrl+ C返回到提示,但这将终止lxpanel。但是,按Alt+ F2(会弹出一个窗口以接受命令)并正常运行lxpanel。 为什么是这样?从终端运行命令和按Alt+ 时出现的“运行”窗口有什么不同F2? †这里仅以lxpanel为例。我在多个程序中都经历过

4
如果我开始过多的后台工作会怎样?
我需要使用Expect脚本在700个网络设备上进行一些工作。我可以按顺序完成它,但是到目前为止,运行时间约为24小时。这主要是由于建立连接所花费的时间以及这些设备(旧设备)的输出延迟。我可以建立两个连接并使它们并行运行,但是我可以推多远呢? 我不认为我可以一次完成所有700个操作,但肯定会有一些限制。我的VM可以管理的telnet连接数量。 如果我确实尝试过像这样的循环来启动其中的700个: for node in `ls ~/sagLogs/`; do foo & done 用 CPU 12个CPU x Intel(R)Xeon(R)CPU E5649 @ 2.53GHz 内存47.94 GB 我的问题是: 所有700个实例能否同时运行? 在服务器达到极限之前,我能走多远? 当达到该限制时,它会只是等待下一次迭代开始foo还是盒子崩溃? 不幸的是,我在公司生产环境中运行,所以我不能完全尝试看看会发生什么。

1
解释为什么观看“工作”无效,但观看“ ps”有效?
jobs我最喜欢的命令是查看我的代码在后台运行。为了动态检查它们,我倾向于键入 watch 'jobs' 不会显示任何内容。然而 watch 'ps' 完美地工作。我几个月来一直在犯同样的错误。 我认为理解为什么第一个不起作用而第二个不能起作用可以帮助我停止做同样的错误。 有人可以帮忙吗?

2
退出Shell后,后台作业会怎样?
从我的理解,工作是管道从某一个shell启动的,你可以管理这些作业(fg,bg,按Ctrl-Z)从该壳体内。一个作业可以包含多个进程/命令。 我的问题是,当包含外壳的原始外壳退出时,这些作业会发生什么?假设未设置huponexit,因此退出shell后后台进程继续运行。 假设我已经完成: $ run.sh | grep 'abc' & [1] job_id 然后我退出这个外壳。我将输入一个新的shell并运行jobs,显然看不到任何内容。但是我可以做ps aux | grep run.sh并看到此过程正在运行,并且我也将ps aux | grep grep看到并grep 'abc'正在运行该过程。 有没有一种方法可以获取完整管道的作业ID,以便我可以一口气杀死它,或者一旦退出原始Shell,是否必须与另一个Shell分别杀死所有进程?(我已经尝试了后者,但它确实有效,但是跟踪所有过程似乎很麻烦。)
9 shell  process  kill  jobs 

3
如何取消在另一个外壳(终端窗口或选项卡)中启动的作业?
如果我开始一个过程并在终端窗口中将其作为背景(例如ping google.com &),则可以使用kill %1(假设它是工作1)将其杀死。 但是,如果我打开另一个终端窗口(或选项卡),则后台进程未在下面列出,jobs并且无法使用直接杀死kill。 是否可以从另一个终端窗口或选项卡中终止此过程? 注意:我使用的是Xfce Terminal Emulator 0.4.3和bash(尽管如果解决方案存在于另一个通用shell中,但bash不存在,我也可以使用它)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.