shell笔记-shell中如何实现多线程
2016-11-12 14:38
253 查看
最近给双十一晚会做直播,并且双十一红包一角标广告形式投放出去,在预热阶段需要看下效果,数据团队没法给出一些指标数据,需要我们自己做数据分析给出,平时shell使用的少,很多数据分析的命令忘记了,趁此机会总结下:
nohup
可以在退出、注销账户、关闭终端的情况下程序仍然可以在后台运行,默认情况下的所有输出都被重定向到一个名为
nohup.out的文件中,除非指定了文件。
如:
该命令的一般形式为:nohup command &
我用到的如
nohup ./red-run.sh 20161024 >red-run.sh.20161024.log 2>&1 &
&后台运行
只要终端关闭,程序即停止运行,不能做到真正的后台运行
冒号用法:
冒号标示空语句,首先冒号可以表示永真(相当于TRUE关键字)如while :;do...done(while循环的条件始终为真);其次冒号可以清空一个文件,:>log将冒号重定向到文件,log文件内容被清空,所以:>命名是常用的清空文件的命令;接着冒号最重要的用法是:不做任何事,只做参数展开。
子shell
()圆括号结构:能强制将其中的命令运行在子shell中
子shell只能继承父shell的一些属性,而子shell不可能反过来改变父shell的属性。子shell能够从父shell继承得来的属性有:当前的工作目录、环境变量、标准输入输出和错误输出、所有已打开的文件描述符、忽略的信号。
wait
wait是一个内建命令,用于等待后台执行的作业全部完成后再执行下面的命令,使用wait在shell中实现了多线程的同步功能
例如:
#!/bin/bash
sleep 10 &
sleep 5&
wait #等待10秒后,退出
例如2:
#!/bin/bash
sleep 10 &
sleep 5&
wait $! #$!表示上个子进程的进程号,wait等待一个子进程,等待5秒后,退出
nohup
可以在退出、注销账户、关闭终端的情况下程序仍然可以在后台运行,默认情况下的所有输出都被重定向到一个名为
nohup.out的文件中,除非指定了文件。
如:
该命令的一般形式为:nohup command &
url=nohup command > myout.file 2>&1 &
我用到的如
nohup ./red-run.sh 20161024 >red-run.sh.20161024.log 2>&1 &
&后台运行
只要终端关闭,程序即停止运行,不能做到真正的后台运行
冒号用法:
冒号标示空语句,首先冒号可以表示永真(相当于TRUE关键字)如while :;do...done(while循环的条件始终为真);其次冒号可以清空一个文件,:>log将冒号重定向到文件,log文件内容被清空,所以:>命名是常用的清空文件的命令;接着冒号最重要的用法是:不做任何事,只做参数展开。
子shell
()圆括号结构:能强制将其中的命令运行在子shell中
子shell只能继承父shell的一些属性,而子shell不可能反过来改变父shell的属性。子shell能够从父shell继承得来的属性有:当前的工作目录、环境变量、标准输入输出和错误输出、所有已打开的文件描述符、忽略的信号。
wait
wait是一个内建命令,用于等待后台执行的作业全部完成后再执行下面的命令,使用wait在shell中实现了多线程的同步功能
例如:
#!/bin/bash
sleep 10 &
sleep 5&
wait #等待10秒后,退出
例如2:
#!/bin/bash
sleep 10 &
sleep 5&
wait $! #$!表示上个子进程的进程号,wait等待一个子进程,等待5秒后,退出
相关文章推荐
- 如何实现shell并发 一个入门级可控多线程shell脚本方案
- 情景linux--shell如何实现多线程
- 如何实现shell并发 一个入门级可控多线程shell脚本方案
- 情景linux--shell如何实现多线程?
- shell实现多线程笔记
- Linux下如何实现shell多线程编程以提高应用程序的响应
- 11.2-全栈Java笔记:Java中如何实现多线程
- shell实现多线程笔记
- 【Python笔记】Python多线程进程如何正确响应Ctrl-C以实现优雅退出
- shell实现多线程笔记
- C#实现多线程时如何将底层服务与界面表现分离?
- Silverlight学习笔记四:如何通过自定义ComboBox实现SelectedValue
- linux下如何自动检测并重新启动一个死掉的进程(shell脚本实现)
- java中如何实现多进程并发?注意不是多线程 - ITeye问答(转载)
- JavaScript中如何实现多线程异步调用的一点研究
- shell如何实现自动记录备份次数??
- Android开发学习笔记(8):浅谈Handler实现多线程和异步处理
- Linux下两个远程登陆用户如何共享同一个登陆shell,以实现远程教育或远程协助
- C++中如何实现多线程——为汪哥提供
- EF学习笔记28:如何实现自己的预先加载(Eager Loading)策略