是的,Linux 系统完全可以创建多个进程,这是其作为多任务操作系统的基本特性之一。
进程创建方式:
fork()
系统调用:创建当前进程的副本(子进程)exec()
系列函数:替换当前进程映像clone()
:更灵活的进程/线程创建方式进程数量限制:
pid_max
)ulimit -u
)查看进程限制:
cat /proc/sys/kernel/pid_max # 最大PID值
ulimit -u # 用户最大进程数
#include <stdio.h>
#include <unistd.h>
int main() {
for(int i = 0; i < 5; i++) {
pid_t pid = fork();
if(pid == 0) {
printf("子进程 %d, PID: %d\n", i, getpid());
return 0; // 子进程退出
}
}
printf("父进程 PID: %d\n", getpid());
return 0;
}
#!/bin/bash
for i in {1..5}; do
(sleep 10; echo "子进程 $i 完成") &
done
echo "父进程继续执行"
wait # 等待所有子进程完成
查看进程:
ps aux
top
htop
进程控制:
kill <PID> # 终止进程
killall <name> # 终止同名所有进程
pkill <pattern> # 按模式终止进程
后台/前台控制:
command & # 后台运行
jobs # 查看后台作业
fg %<jobnum> # 切换到前台
Linux 的多进程设计是其强大功能的基础,合理利用多进程可以显著提高系统资源利用率和程序性能。