精灵进程的创建步骤(也叫守护进程)
1、创建孤儿进程
父进程退出,子进程保留
2、子进程创建新会话
pid_t setsid(void);
功能:将当前进程设置为会话组组长。脱离终端的控制。
3、改变目录为不可卸载目录
int chdir(const char *path);
功能:将当前工作目录,改变成指定的目录,作用是确保守护进程所在的工作目录不能被卸载。
一般是根目录(root) 或者 /mnt 目录
参数:path 要改变的目标目录位置
返回值:成功 0
失败 -1
4、重设文件权限掩码
mode_t umask(mode_t mode);
功能:修改当前工作目录的权限掩码
参数: mode 就是新的权限掩码===>mode = 0;
返回值:成功 新的权限掩码
失败 -1
5、关闭文件描述符
int getdtablesize(void);
功能:获取当前进程中已经打开的文件描述符的最大值。
返回值:成功 最大的描述符
失败 -1
验证某个进程是否是守护进程的方法:
1、父进程必须是init进程
2、ps -ef 中的TTY 列是?表示其是守护进程。
3、ps -aux 中的STAT 列中有s 存在,表示当前进程是会话组长。
页面更新:2024-06-02
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号