bash多进程】的更多相关文章

#!/bin/bashCMD_PATH=`dirname $0`#echo $CMD_PATH > /home/wubin/testjava -jar $CMD_PATH/Server.jar > $CMD_PATH/get.log & java -jar $CMD_PATH/Swifi_Sender_Server.jar > $CMD_PATH/send.log 执行到&,开启新进程继续执行.…
问题集锦 其实标题的内容就是很常见的集群操作,当有一个脚本或者一个命令需要很多个机器同时(或者说接近同时)执行时,就涉及到几个问题: 怎么通知每个主机? 每个主机收到通知后,怎么让主机执行命令? 怎么让上面的过程同时发生? 上面其实可以分为两步: 登录到单个机器 让单个机器执行命令 重复上面的两个操作,执行多进程或者创建子进程都能达到目标. 接下来的问题: ssh登录需要密码,怎么设置无需密码就可以登录 登录后怎么让登录的机器执行命令 ssh免密码登录 关于这个问题,可以参考这篇博客ssh免密码…
目标 以可控制的多进程执行,达到最大执行时长后停止脚本. 思路 1.产生fifo管道,并预填充n个值(与并发数相等) 2.记录脚本本身PID并启动计时器进程(计时终止后杀脚本本身PID) 3.并发执行 4.正常执行后,杀掉计时器子进程 5.回收fd 控制参数 PROC: 进程数 MAX_EXEC_TIME: 最大执行时长 不带时间控制版本 #!/bin/bash trap mkfifo testfifo exec <>testfifo rm -f testfifo ..};do done ..…
之前一段时间,发现线上日志服务器总是会突然丢失日志,碰到问题时搞的很被动.联系运维同学,又总是被往后推(后来看了一下日志归档脚本,运维同学写的bug).索性自己写了一个脚本,添加到crontab任务中,替换运维同学的脚本. 线上服务器每天大概产生6000-10000个日志文件(部分级别的日志),每个文件99m.压缩时考虑到尽可能多保留日志,gzip设置的9,压缩比最大.但是最慢的压缩算法.如果以单个进程来慢慢压缩.按天归档,日志较多时,一天都归不完.所以肯定要多个进程压缩. bash中,把任务放…
本文部分来自网络参考,部分自己总结,由于一直保存在笔记中,并没有记录参考文章地址,如有侵权请通知删除.最近快被业务整疯了,这个等抽时间还需要好好的整理一番.   多进程--fork 场景:日常任务中,有时需要通过php脚本执行一些日志分析,队列处理等任务,当数据量比较大时,可以使用多进程来处理. 准备:php多进程需要pcntl,posix扩展支持,可以通过 php - m 查看,没安装的话需要重新编译php,加上参数--enable-pcntl,posix一般默认会有. 注意:  多进程实现只…
http://jerkwin.github.io/2013/12/14/Bash%E8%84%9A%E6%9C%AC%E5%AE%9E%E7%8E%B0%E6%89%B9%E9%87%8F%E4%BD%9C%E4%B8%9A%E5%B9%B6%E8%A1%8C%E5%8C%96/ 在Linux下运行作业时, 经常会遇到以下情形: 有大量作业需要运行, 完成每个作业所需要的时间也不是很长. 如果我们以串行方式来运行这些作业, 可能要耗费较长的时间; 若采用并行方式运行则可以大大节约运行时间. 再者…
首先附上自己常用的代码 ------------------------------------------------------------------------------------------------------------------------------------#定义并发进程数量PARALLEL=xx #定义临时管道文件名TMPFILE=$$.fifo #定义导出配置文件全路径名CMD_CFG=${xx} #定义失败标识文件FAILURE_FLAG=failure.lo…
1. 基础知识准备 1.1. linux后台进程 Unix是一个多任务系统,允许多用户同时运行多个程序.shell的元字符&提供了在后台运行不需要键盘输入的程序的方法.输入命令后,其后紧跟&字符,该命令就会被送往到linux后台执行,而终端又可以继续输入下一个命令了.比如: sh a.sh & sh b.sh & sh c.sh & 这三个命令就会被同时送往linux后台执行,在这个程度上,认为这三个命令并发执行了. 1.2. linux文件描述符 文件描述符(缩写…
把以前博客的东西夜迁移过来吧,这个是以前公司做的,原来放在csdn里面,先切过来. 用多进程实现的 wget多进程抓取的实现,有问题联系我 (微博:偶是周亮) #!/bin/bash url_path="-"; WGET_TIMECOUNT=; WGET_TIME=; FORK_SLEEP_TIME=; ONEURL_SLEEP_TIME=; SPIDER_PID_NUM=; function usage(){ echo "usage:spider.sh -u url_pat…
之前需要多进程程序都是python实现,闲来无事弄了下shell多进程,发现so easy(笑哭) 代码上: #!/bin/bash sleep 10 & sleep 5& wait 代码2上: #!/bin/bash sleep 10 & sleep 5& wait $! 区别其实只有最后一行. wait表示等待所有子进程结束后父进程退出 wait $! 等待最后一个子进程结束后父进程退出,$!表示上一个进程的pid,也可以等待指定的pid shell程序虽然健壮性要弱一…
shell 多进程来模拟多线程 (1){ } 建立代码块 (2)使用 & 将进程放入后台 [zheng@localhost ~]$ cat threads.sh #!/bin/bash ;i<;i++)) do { echo $i>>aa && echo $i }& done wait cat aa | wc -l rm aa result…
runinit启动小程序测试 与Supervisord类似的工具包括monit, daemontools和runit. 我还发现个神器,专门针对单容器启动多进程的神器s6: https://github.com/just-containers/s6-overlay 参考: https://github.com/faisyl/alpine-runit/blob/master/Dockerfile https://segmentfault.com/a/1190000006644578 安装 # ap…
1.需求 查找192.168.0.*网段中所有未使用过的IP 2.实现     我们知道查找未使用IP的方法可以使用ping命令完成.对于单个IP的判断,使用命令如下 $ 192.168.0.1 PING () bytes of data. bytes from ttl= time=0.031 ms --- 192.168.0.1 ping statistics --- packets transmitted, received, % packet loss, time 0ms rtt min/…
php 在使用场景中一般是处理web应用,所以多进程使用不适合在web中使用,且php-fpm中pcntl_fork不能使用,所以使用场景是在cgi模式下 一个进程调用pcntl_fork函数后,系统先给新的进程分配资源,例如存储数据和代码的空间.然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同.相当于克隆了一个自己.pcntl_fork会创建出一个父进程和子进程 <?php if (!function_exists('pcntl_fork')) { die("…
docker容器内多进程的管理方案 时间 2015-05-08 00:00:00                                               涯余                          原文                   http://yayua.github.io/docker/container-process-monitor/             主题                 Docker                 多进程…
1.python多进程编程背景 python中的多进程最大的好处就是充分利用多核cpu的资源,不像python中的多线程,受制于GIL的限制,从而只能进行cpu分配,在python的多进程中,适合于所有的场合,基本上能用多线程的,那么基本上就能用多进程. 在进行多进程编程的时候,其实和多线程差不多,在多线程的包threading中,存在一个线程类Thread,在其中有三种方法来创建一个线程,启动线程,其实在多进程编程中,存在一个进程类Process,也可以使用那集中方法来使用:在多线程中,内存中…
docker容器内多进程的管理方案 时间 2015-05-08 00:00:00 涯余 原文  http://yayua.github.io/docker/container-process-monitor/ 主题 Docker 多进程 容器生来适合的是以单进程为主的独立的微服务架构,而很多传统的组件则是体积庞大,多 个进程(组件)之间难以拆分到不同的容器中,所以在单个容器内部署多个组件便成了一种 暂时的折衷方案.这便引入了一个问题:如何在容器内管理多个进程? 综述 总的来说,至少有三种方式可选…
shell脚本再执行过程中就一个进程,从头到尾 下面配置shell脚本执行过程中启动多个进程同时执行 #!/bin/bash for ((i=1;i<=10;i++)) do ( echo "$i" sleep 10 ) & done wait echo -E "########## $SECONDS ##########" 注: $SECONDS:是执行完脚本所用的时间 wait:是等待所有的进程执行完毕 执行结果 [root@wcy ~]# bas…
现状: 目前使用child_process.fork实现多进程,一个center.js负责任务分配及相关状态管理,一个worker.js负责任务执行. center.js结构: 1) 一个task_queue变量保存不同worker所需的数据 2) 一个run函数生成多个worker并分配数据.这里需要考虑worker串行执行或并行执行,串行执行是因为有时候跑多个worker时访问公共资源(如MongoDB且数据量特别大TODO1:这里应该要使用数据库切分)会相互影响执行速度.实际上串行执行也称…
Python 2.6新增的multiprocessing,即多进程,给子进程代码调试有点困难,比如python自带的pdb如果直接在子进程代码里面启动会抛出一堆异常,原因是子进程的stdin/out/err等文件都已关闭,pdb无法调用.据闻winpdb.Wing IDE的调试器能够支持这样的远程调试,但似乎过于重量级(好吧前者比后者要轻多了,但一样要wxPython的环境,再说pdb的灵活可靠它们难以比拟). 其实只需稍作改动即可用pdb继续调试子进程的代码,思路来自这个博客:子进程的stdi…
由于工作需要,之前的几个月写了一些Bash脚本,主要完成自动测试.打包.安装包等.虽然相比C++编程,要简单.傻瓜,但其在类Unix系统中可以大大提高工作的效率.所以在此对脚本编程过程中一些注意事项进行简单的总结. 1. shell概述 shell是介于用户和类Unix操作系统内核(kernel)之间的一个接口,是为了保护内核不被用户误操作造成损害,在内核的周围建立一个外壳(shell). 用户通过向shell提出请求,shell解释并将请求传给内核.而多个shell请求可以写在一个文件中,便构…
1 基本理解 python不支持真多线程,无法在单进程中调用多核cpu.对于cpu密集型任务,可以使用多进程.python会调用OS原生多进程,运行在多核上,以此提高运行速度. 2 基本实现 import multiprocessing import time def test(n): print('this is the num %s process' %n) time.sleep(100) if __name__ == '__main__': for i in range(10): mp =…
展示代码 #!/bin/bash trap "exec 1000>&-;exec 1000<&-;exit 0" 2 # 分别为 创建管道文件,文件操作符绑定,删除管道文件 mkfifo testfifo exec 1000<>testfifo rm -rf testfifo # 对文件操作符进行写入操作. # 通过一个for循环写入10个空行,这个10就是我们要定义的后台线程数量. for ((n=1; n<=10; n++)) do e…
先看下我已经安装的php版本 PHP (cli) (built: Jul ::) ( NTS ) Copyright (c) - The PHP Group Zend Engine v3.- Zend Technologies php实现多进程需要安装pcntl模块,这个模块是php官方提供的,所以我们可以在PHP源码中找到,下载 php7.3.7 源码并解压到  /home 目录下,这时我们需要的扩展 pcntl 在  /home/php-7.3.7/ext/pcntl 依次执行以下命令 ph…
前言 自学Linux的时候,我们用的显示器+键盘 是物理终端.Linux开机后,会在物理终端(显示器)之上,以软件的方式虚拟出多个终端,CentOS是6个.Ctrl+Alt+F1~6切换 默认情况下,linux启动后都是从虚拟终端1登陆,而不会使用物理终端,即便在物理终端上.物理终端只在刚开机那一会儿,Linux还没有运行起来的时候有用.一旦程序启动完成便由虚拟终端1接管了. 为啥是6个终端? 以SysV采用的init为例,在/etc/inittab文件中会定义虚拟终端的个数 [root@www…
BASH的保护性编程技巧   shell常用逻辑判断 -b file 若文件存在且是一个块特殊文件,则为真 -c file 若文件存在且是一个字符特殊文件,则为真 -d file 若文件存在且是一个目录,则为真 -e file 若文件存在,则为真 -f file 若文件存在且是一个规则文件,则为真 -g file 若文件存在且设置了SGID位的值,则为真 -h file 若文件存在且为一个符合链接,则为真 -k file 若文件存在且设置了"sticky"位的值 -p file 若文件…
php中如何实现多进程 一.总结 一句话总结: php多进程需要pcntl,posix扩展支持 可以通过 php - m 查看,没安装的话需要重新编译php,加上参数--enable-pcntl,posix一般默认会有 1.php多进程使用场景? 日常任务中,有时需要通过php脚本执行一些日志分析,队列处理等任务,当数据量比较大时,可以使用多进程来处理 2.php的cli模式是什么? 命令行模式:cli : Command Line Interface(命令行接口) 3.php多进程使用限制?…
cURL > Docs > Tutorial:  http://curl.haxx.se/docs/httpscripting.html 下载单个文件,默认将输出打印到标准输出中(STDOUT)中,能够通过http.ftp等方式下载文件,也能够上传文件.其实curl远不止前面所说的那些功能,类似的工具还有wget. curl命令使用了libcurl库来实现,libcurl库常用在C程序中用来处理HTTP请求,curlpp是libcurl的一个C++封装,这几个东西可以用在抓取网页.网络监控等方…
Reference: http://saiyaren.iteye.com/blog/1943207 1.     Shell  读取文件和写文件 for line in $(<top30000.url.utf-8.http_server_front_hphp.txt); do tmp_port=8080; for((i=0;i<=7;i++));do echo ${line/192\.168\.12\.63/192\.168\.12\.63:$tmp_port} >>top3000…
一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个需求:要在测试环境创建10000个作业流. 最开始的想法是在一个azkaban project下循环调用10000次create job接口(每个Flow只包含一个job).由于azkaban它本身没有增加/删除作业流的接口,所有的作业流修改.增加.删除其实都是通过重新上传项目zip包实现的,相应地…