此API提供了基本的进程管理功能。此功能主要被io
模块用于向不同程序分别提供标准输入输出。
将进程看作带有额外元数据的协程会有助于理解。进程会继承其父进程的元数据,同时也可以定义自己的元数据。这些元数据支持stdio和控制台屏幕。进程创建的所有协程都会像其子线程一样被分组。
process.load(path:string[, env:table[, init:function[, name:string]]]):coroutine
path
也可为函数,此时 env
必须为 nil
。
init
函数,则prosecc.load产生的协程第一次执行时会调用此方法,并在程序实际开始运行前执行。这可以用于微调程序运行环境。
如果给定了 name
,则 process.running
的结果中会为此进程指定此名称。此参数也可以为 nil
。process.info([level: number]): table
返回一个表,其中包含指定进程的命令、路径与一些其他数据。 level
参数为可选参数,若给定则可获取父进程。默认情况下此值为1,即当前进程。若为2代表当前进程的父进程(调用了 process.load
启动了此进程的进程)。以此类推。process.running([level: number]): string, table, string
(自1.5起弃用,改用 process.info 代替) 返回指向当前运行程序(即通过process.load
创建的最后一个进程)的路径。level
参数为可选参数,若给定则可获取父进程。默认情况下此值为1,即当前进程。若为2代表当前进程的父进程(调用了 process.load
启动了此进程的进程)。以此类推。
第二个返回值为进程的环境,即为了其使用而创建的表。
第三个返回值为进程的name
,即process.load
的第四个参数。对通过shell启动的程序而言此值为启动时的原始命令。例如,对于 ls -l
命令,第一个返回值为 ls
,而第三个返回值为 ls -l
。