perl学习(9)进程管理

一:system

  system函数是启动perl子程序最简单的方法。eg:system “date”

1:可以利用shell功能来启动后台进程

  system "run_cmd with parameters &";#在后台执行

2:system执行正常返回值为0,否则返回值非0.

3:支持多个参数

二:exec function

  类似于system;

  区别:system会创建子进程执行外部命令,父进程等待创建的子进程结束并继续执行下面代码;而exec不会开启子进程。而是取代父进程成为新的父进程,一般和fork配合使用;exec调用之后写的任何代码都无法运行。

三:环境变量

  %ENV:修改%ENV可以改变环境变量,但不影响shell或者其他父进程

四:反引号捕获输出结果

五:fork进行并发操作

  fork从一个进程中创建两个进程,如果成功,该函数给父进程返回新创建的子程序ID,而给子程序返回0。如果系统没有足够的资源分配一个新的进程,那么调用失败并返回undef。

  父进程可以使用waitpid函数来等待子进程的结束

  eg:

  

  

  输出:当命令行为0时,执行else段,系统fork自动给值,pid得到子程序的ID值,所以先执行父程序段,再执行子程序段,若在父程序段出现waitpid,则进入子程序,执行完子程序再执行剩下的父程序。

  

  

 

posted on 2018-03-25 16:15  huanm  阅读(633)  评论(0)    收藏  举报