php进程控制--POSIX扩展

2021-03-22

可以检索敏感数据,在 Windows 平台上不可用

获取进程ID

// 获取当前进程id
posix_getpid();

// 获取父进程标识符id
posix_getppid();

// 获取当前进程有效组id
posix_getegid();

// 获取当前进程真实组ID
posix_getgid();

// 获取当前进程有效用户标识
posix_geteuid();

// 获取当前进程真实用户ID
posix_getuid();

// 获取指定进程$process_id的sid,失败返回false
posix_getsid($process_id);

设置进程ID

// 设置当前进程的有效组ID为$group_id,需要系统的特权(例如root)
posix_setegid($group_id);

// 设置当前进程的真实组ID为$group_id,需要系统的特权(例如root)
posix_setgid($group_id);

// 设置当前进程的有效用户ID为$user_id,需要系统的特权(例如root)
posix_seteuid($user_id);

// 设置当前进程的UID为$group_id,需要系统的特权(例如root)
posix_setuid($group_id);

// 使当前进程成为会话负责人
posix_setsid($group_id);

获取路径

// 获取脚本当前工作目录的绝对路径,失败返回false,使用posix_get_last_error()可获取错误信息
posix_getcwd();

// 获取进程当前控制终端的路径,错误返回false,使用posix_get_last_error()可获取错误信息
posix_ctermid();

获取posix错误信息

// 获取最后一个失败的posix函数的错误号
posix_get_last_error();

// 将错误号$error_code解析为错误消息
posix_strerror($error_code);

获取系统资源信息

// 获取系统资源限制信息数组,失败返回false
posix_getrlimit();

// 获取当前CPU使用率信息数组,失败返回false
posix_times();

获取文件可访问性

$flags = [
    POSIX_F_OK, // 文件是否存在
    POSIX_R_OK, // 文件读
    POSIX_W_OK, // 文件写
    POSIX_X_OK, // 文件执行
];
// 判断文件$filename是否有指定权限$flags,返回值为bool
posix_access($filename, $flag = 0);

发送信号

// 发送信号$signal给执行进程id $process_id
posix_kill($process_id, $signal);

 

{/if}