美文网首页
子shell,后台模式

子shell,后台模式

作者: 叶田的学习笔记 | 来源:发表于2018-11-07 14:32 被阅读0次

演示后台模式的一个经典命令就是sleep,可以在命令末尾加上字符&进入后台模式。
sleep 3000&
sleep命令会在后台(&)睡眠3000秒(50分钟)

jobs命令可以显示出当前运行在后台模式中的所有用户的进程(作业)
jobs

利用jobs命令的-l(字母L的小写形式)选项,你还能够看到更多的相关信息。除了默认信息之外, -l选项还能够显示出命令的PID。
jobs -l

后台模式非常方便,它可以让我们在CLI中创建出有实用价值的子shell。

将进程列表置入后台
(sleep 2 ; echo $BASH_SUBSHELL ; sleep 2)&

在CLI中运用子shell的创造性方法之一就是将进程列表置入后台模式。你既可以在子shell中进行繁重的处理工作,同时也不会让子shell的I/O受制于终端。

协程 coproc
协程可以同时做两件事。它在后台生成一个子shell,并在这个子shell中执行命令。
coproc sleep 10

重命名进程名:
coproc My_Job { sleep 10; }
通过使用扩展语法,协程的名字被设置成My_Job。这里要注意的是,扩展语法写起来有点麻烦。必须确保在第一个花括号({)和命令名之间有一个空格。还必须保证命令以分号(;)结尾。另外,分号和闭花括号(})之间也得有一个空格。
只有在拥有多个协程的时候才需要对协程进行命名,因为你得和它们进行通信。否则的话,让coproc命令将其设置成默认的名字COPROC就行了。

也可以将协程与进程列表结合起来产生嵌套的子shell,只需要输入进程列表,然后把命令coproc放在前面就行了。
$ coproc ( sleep 10; sleep 2 )

生成子shell的成本不低,而且速度还慢。创建嵌套子shell更是火上浇油!

相关文章

  • 子shell,后台模式

    演示后台模式的一个经典命令就是sleep,可以在命令末尾加上字符&进入后台模式。sleep 3000&sleep命...

  • SHELL并发编程

    SHELL的并行编程:通过启用多个并行的后台子进程,实现任务的并行处理。 并发编程的模式: 简单模式 批处理模式 ...

  • Linux学习--No.4父子shell与后台模式

    理解Linux父子shell间的关系以及后台运行模式可以让我们更高效地完成一些任务。 要点1:父子shell 父s...

  • Linux环境变量

    一、子shell 1、子shell,即从当前shell环境新开一个shell环境,这个新开的shell环境就称为子...

  • shell变量$#,$@,$0,$1,$2的含义解释

    变量说明: $$ :Shell本身的PID(ProcessID) $! :Shell最后运行的后台Process的...

  • linux中shell变量$#,$@,$0,$1,$2的含义解释

    变量说明:$$Shell本身的PID(ProcessID) $!Shell最后运行的后台Process的PID $...

  • Linux shell中的$0-$n,$$,$!,$?...

    变量说明 $$:Shell本身那个的PID(ProcessID) $!:Shell最后运行的后台Process的P...

  • django分页功能详解

    python shell模式下导入django下的Paginator模块 python shell模式下导入需要展...

  • Shell的后台运行(&)与nohup

    shell的后台运行(&)与nohup 简述 在shell脚本中当我们需要把一个任务放在后台运行时,通常我们会使用...

  • 启动ssh-agent

    方式一:创建子shell,在子shell中运行ssh-agent进程,退出子shell自动结束代理。 方式二:单独...

网友评论

      本文标题:子shell,后台模式

      本文链接:https://www.haomeiwen.com/subject/tizmxqtx.html