`
iandaicsu
  • 浏览: 52069 次
社区版块
存档分类
最新评论

Ruby进程(1) Process.fork 和 Kernel#exec, Kernel#system and Backticks(%x) 比较(Linux)

    博客分类:
  • Ruby
 
阅读更多

1 同样都是创建子进程

 

Process.fork{ } 是非阻塞的执行,创建的子进程与父进程并发运行,需要使用Process.wait或者Process.detach来防止产生zommbie process

Kernel#exec, Kernel#system and Backticks(%x)阻塞的执行,调用者将等待被调用的返回

 

2 Kernel#exec, Kernel#system and Backticks(%x) 区别

 

Kernel#exec 用新创建的子进程取代原来的进程

exec('ls ~')
# Nothing after this command is executed

 

Backticks or %x shortcut 创建子进程,子进程返回运行的结果

`ls ~`
=> "Applications\nDesktop\nDocuments"
%x(ls ~)
=> "Applications\nDesktop\nDocuments"

 

Kernel#system 创建子进程,子进程返回true(command run successfully),false(unsuccessful)或者 nil (command execution failed):

system('ls ~')
=> true

 

 

 

Resource

Process.fork  http://www.ruby-doc.org/core-2.0/Process.html#method-c-fork

Kernel#exec, Kernel#system and Backticks(%x)区别详解  http://rubyquicktips.com/post/5862861056/execute-shell-commands

分享到:
评论

相关推荐

    Node项目pkg打包ES6,以及多进程child-process.fork方式

    介绍帖子参考这里: https://superliii.blog.csdn.net/article/details/124114250

    Linux下Fork与Exec使用

    fork函数是Unix系统最杰出的成就之一,它是七十年代UNIX早期的开发者经过长期在理论和实践上的艰苦探索后取得的成果,一方面,它使操作系统在进程管理上付出了最小的代价,另一方面,又为程序员提供了一个简洁明了的...

    Linux进程控制编程-fork子进程创建实例.pdf

    Linux进程控制编程-fork子进程创建实例.pdf 学习资料 复习资料 教学资源

    linux 多进程编程 fork

    linux 多进程编程 forklinux 多进程编程 forklinux 多进程编程 forklinux 多进程编程 forklinux 多进程编程 forklinux 多进程编程 forklinux 多进程编程 forklinux 多进程编程 forklinux 多进程编程 forklinux 多...

    linux 进程 线程 fork 的深入思考

    linux 进程 线程 fork 的深入思考 一道面试题的思考

    linux进程控制-fork().

    linux下的fork函数机理说明和用法。非常详细和生动。

    大好商城小程序源码

    ##1.首页 ![](./demo.png) ##2.分类 ![](./demo4.png) ##3.个人中心 ![](./demo3.png) ##本人是做android开发,此项目是最近没事做着玩的,前端大神勿喷,按照API文档实现的布局,里面具体的逻辑和功能有待完善,...

    操作系统课程设计

    2)进程的软中断通信使用系统调用fork()创建两个子进程,使用系统调用signal()让父进程捕捉用alarm函数设置时钟的时间段终止时产生的信号,当捕捉到该信号后,父进程使用系统调用Kill()向两个子进程发出信号,子...

    Python中的进程分支fork和exec详解

    1.fork()调用后会创建一个新的子进程,这个子进程是原父进程的副本.子进程可以独立父进程外运行. 2.fork()是一个很特殊的方法,一次调用,两次返回. 3.fork()它会返回2个值,一个值为0,表示在子进程返回;另外一个值为非0...

    linux中进程问题

    while(1){ sem_wait(∅); //P操作 printf("%s\n",(char *)arg); sem_post(&applefull;); //V操作 Sleep(7); } } void *procm(void *arg) //mother线程 { while(1){ sem_wait(∅); printf("%...

    linux系统fork创建子进程.zip

    里面是三个实验,分别是fork创建子进程,各个进程之间的关系,并发还是同步,以及子进程复制父进程代码的说明

    python基础教程:Python中的进程分支fork和exec详解

    这篇文章主要介绍了Python中的进程分支fork和exec详解,本文用实例讲解fork()的使用,并讲解了exec相关的8个方法等内容,需要的朋友可以参考下 在python中,任务并发一种方式是通过进程分支来实现的.在linux系统在,通过...

    Linux System Programming

    If any evolving operating system is a moving target, Linux is a rabid cheetah. Progress is measured in days, not years, and frequent releases of the kernel and other components constantly morph the ...

    linux基于多进程的socket通信

    // Client/Server模型的服务器端 #include <sys/types.h> #include <sys/socket.h> #include <unistd.h> #include <stdio.h> #include <string.h> #include <netinet/in.h> #include <arpa/inet.h> ...

    带中文注释的 linux 0.11 源代码

    linux .....\boot .....\....\bootsect.s .....\....\head.s .....\....\setup.s .....\fs .....\..\bitmap.c .....\..\block_dev.c .....\..\buffer.c .....\..\char_dev.c .....\..\exec.c .....\..\...

    fork process on linux

    使用linux来fork程序 "Fork",除了它是一個當你不停地敲入后看起來非常奇怪的單詞以外,通常是指 Unix 產生新進程的方式。由于系統調用的用法將會在其他 IPC 的文檔中出現,本文只是一個快速的,不太精确的 fork() ...

    基于springboot+mysql+web的企业人力资源管理系统源码+项目说明(高分毕设).zip

    【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和...1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request

    亚信java笔试题--:资料

    喜欢就Star,不只是Fork; 想要分享的动机才是驱动力,而技术仅仅是一种方法。 综合类 入门类 效果类 工具类 慕课专题 周报类 ###六. API: ####1. 总目录 开发中心 综合Bug集合网站 综合搜索 综合API 英文综合API...

    电子科大操作系统实验课Linux通过管道实现进程间通信

    在Linux系统中使用系统调用fork()创建两个子进程,使用系统调用pipe()建立一个管道,两个子进程分别向管道各写一句话: Child process 1 is sending a message! Child process 2 is sending a message! 而父进程则...

    fork、exec系列与system、popen区别.rar_UNIX popen_linux system pop_pop

    fork和exec系列调用前后,进程在内存的“数据段”,“堆栈段”和“代码段”有什么不同?读了之后,你就会知道了,

Global site tag (gtag.js) - Google Analytics