首页 > 系统相关 >Linux多进程工具(自编,适用于编程语言调用)

Linux多进程工具(自编,适用于编程语言调用)

时间:2023-05-12 10:12:55浏览次数:35  
标签:help 编程语言 自编 args append Linux txt pres wait

linux的多进程工具parallel不好用

编写了一个脚本,为了搭配编程语言,方便使用多进程。对手工使用不太友好

参数

参数名 含义
无参数名 要并行运行的命令,用单/双引号包围,空格分隔
-p 在每个并行命令运行前执行的命令
-h 显示帮助信息并退出

 

用法

见下方示例

脚本

#!/usr/bin/env python3
import sys
import subprocess as sp


args = sys.argv[1:]
if '-h' in args or '--help' in args:
    print('help message:\n\tcommands\tmulti-processing commands\n\t-p\tprecommands\n\t-h/--help\tshow help message')
    exit(0)

pres = []
cmds = []

it = iter(args)
for i in it:
    if i == '-p':
        pres.append(next(it))
    else:
        cmds.append(i)

pre = '&&'.join(pres) + '&&' if pres else ''

ps = []
for cmd in cmds:
    ps.append(sp.Popen(pre+cmd, shell=True))

for p in ps:
    p.wait()

示例

脚本名:start_pses_and_wait

在创建脚本并保存后,在linux命令行下输入:

python3 start_pses_and_wait "sleep 10" "echo 3 > a.txt" "touch b.txt" "sleep 5"

可以发现程序运行了10秒(说明休息10秒和休息5秒的命令在同时执行),多出了两个文件a.txt b.txt。

 

标签:help,编程语言,自编,args,append,Linux,txt,pres,wait
From: https://www.cnblogs.com/roundfish/p/17392974.html

相关文章

  • Linux环境配置
    无线网卡的驱动经常因为版本或内核问题,或是网卡太新导致系统里的旧版无线网卡驱动不兼容一、编译无线网卡驱动方案下载源码(确保有Git)sudoaptinstallgitgitclonehttps://gitee.com/tangyang/backport-iwlwifi.git#或直接从原始位置获取#gitclonehttps://git.kern......
  • Linux环境下查看以及杀死僵尸进程
    杀死僵尸进程,方法三比较好用,推荐使用1、查看所有的僵尸进程 ps-A-ostat,pid,ppid|grep-e'[zZ]'例:Z110101这列出了僵尸进程STAT列,进程ID、父进程ID2、杀死所有僵尸进程方法一:通过向父进程发送信号方式杀死,这种方法适用用父进程可以处理信号的情况kill-sSIGCHL......
  • linux 中 export命令
     export命令扩大了变量的作用范围。001、root@DESKTOP-IDT9S0E:/home/test#lsa.txtrecord.shroot@DESKTOP-IDT9S0E:/home/test#cata.txt##测试文件010203040506070809101112root@DESKTOP-IDT9S0E:/home/test#catrecord.sh##测试命令#!/b......
  • linux 中xargs 命令
     001、root@DESKTOP-IDT9S0E:/home/test#lsa.txtb.csvc.pedxxroot@DESKTOP-IDT9S0E:/home/test#cata.txt12345678910root@DESKTOP-IDT9S0E:/home/test#echoa.txt|cata.txtroot@DESKTOP-IDT9S0E:/home/test#echoa.txt|xargscat......
  • 手机作为本地Linux 服务器使用
    直入正题!!!Android手机安装好aidlux软件,打开(不运行的话,无法使用)里面有个cloud_id点开就是IP地址通过电脑sshroot@ip-p9022密码是aidlux 就可以像访问服务器一样操作了。8g+256的内存,同一个网络,真是太爽了 多用几个闲置手机,就可以模拟多种环境下的开发,几乎木有成本......
  • linux中对jar文件的操作
    linux中,替换jar包中的文件,可以减少重新打包上传的时间,尤其是网速不好的时候。 1.根据文件名,查找出文件在jar包中的文件目录位置;例如:jar-tvftest.jar|grepapplication.yml2.将需要修改的文件,解压出来,并替换修改的文件;jar-xvftest.jarBOOT-INF/classes/application......
  • [Linux] 如何查看Centos用户登陆记录?[转载]
    0序言首先简单介绍一下Centos中记录登陆信息的日志有关当前登录用户的信息记录在文件utmp中;登录进入和退出纪录在文件wtmp中;最后一次登录文件可以用lastlog命令察看。数据交换、关机和重起也记录在wtmp文件中。所有的纪录都包含时间戳。每次有一个用户登录时,login程序在文件......
  • Linux 冷门实用命令
    Alt+. (大键盘的点) 粘贴上一个命令参数  Ctrl+L清空整个屏幕  mount挂载 可以让目录成为设备访问点 mount/路径/路径  一旦挂载成功 文件变为只读文件不允许修改 umount /路径卸载挂载 ......
  • 第二节:编程语言与Python介绍
    一引子基于上一节所学,有了计算机硬件,再在硬件之上安装好操作系统,我们就有了一个应用程序的运行平台,我们接下来的任务就是学习如何使用某款编程语言来开发应用程序。本章的主题是先带大家了解下编程语言,然后重点介绍Python这门编程语言二编程语言分类:2.1机器语言机器语言......
  • U盘制作linux启动盘
    1、前期准备使用U盘安装Linux系统,需要准备以下工具:   ·大容量的U盘(安装CentOS6.x系统,U盘容量至少8G);·UltraISO工具,用来制作U盘启动盘。除此之外,由于UltraISO工具是Windows软件,所以需要一台安装了Windows系统的计算机协助;·CentOS6.x系统的ISO映......