在Linux中,进程控制相关的API非常多。以下是一些常用的进程控制相关的系统调用(syscalls)和库函数:
-
创建和终止进程:
fork()
: 创建一个新进程,这是创建新进程的最常用方法。vfork()
: 类似于fork()
,但有一些差异,主要用于exec
调用之前。exec()
: 系列函数(如execl()
,execp()
,execle()
,execve()
,execvp()
),用于在当前进程上下文中执行一个新的程序。exit()
: 结束当前进程。_exit()
: 立即结束当前进程。wait()
: 等待子进程结束。waitpid()
: 等待指定的子进程结束。
-
进程属性:
getpid()
: 获取当前进程的PID。getppid()
: 获取父进程的PID。setpgid()
: 设置进程组ID。getpgid()
: 获取进程组ID。getpgrp()
: 获取进程组。setsid()
: 创建新的会话。
-
信号:
kill()
: 发送信号到指定进程。signal()
: 设置信号处理函数。sigaction()
: 详细设置信号处理行为。pause()
: 暂停进程直到收到一个信号。sigprocmask()
: 修改或检查被阻塞的信号集。sigpending()
: 获取当前阻塞的信号集。
-
进程调度和优先级:
nice()
: 改变进程的执行优先级。getpriority()
: 获取进程的优先级。setpriority()
: 设置进程的优先级。sched_setscheduler()
: 设置进程的调度策略和优先级。sched_getscheduler()
: 获取进程的调度策略。sched_yield()
: 使当前进程放弃CPU,以便其他进程可以运行。
-
其他:
alarm()
: 设置一个定时器,当定时器超时时会发送SIGALRM
信号到进程。sleep()
: 暂停进程指定的秒数。usleep()
: 暂停进程指定的微秒数。nanosleep()
: 暂停进程指定的纳秒数。
以上只是与进程控制直接相关的一些基本API。在实际应用中,还有许多其他与进程相关的函数和工具。
标签:优先级,设置,获取,API,信号,Linux,进程 From: https://www.cnblogs.com/tangjicheng/p/17673556.html