美文网首页
子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,后台模式

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