Linux 进程管理是操作系统的核心功能之一,涉及进程的创建、调度、终止、通信和资源管理。以下是关键概念和管理方法的详细说明:
fork() 创建(父进程可能是 init/systemd,PID=1)。fork() 系统调用复制父进程,或通过 exec() 加载新程序。ps:查看进程状态。ps aux # 查看所有进程
ps -ef # 完整格式列表
ps -p <PID> # 查看特定进程
top / htop:动态查看进程资源占用(CPU、内存)。pstree:树状显示进程关系。command & # 后台运行
nohup command & # 忽略挂断信号(脱离终端)
kill <PID> # 发送 SIGTERM(默认,优雅终止)
kill -9 <PID> # 发送 SIGKILL(强制终止)
pkill -f "process_name" # 按名称终止
nice -n 10 command # 启动进程时设置优先级(-20 高,19 低)
renice +5 -p <PID> # 调整运行中进程的优先级
SCHED_FIFO(先进先出)、SCHED_RR(轮转)。chrt -p <PID> # 查看实时优先级
| 或 pipe() 系统调用。SIGINT(Ctrl+C)、SIGTERM(终止请求)。kill -l # 列出所有信号
shmget()、shmat()。msgget()、msgsnd()。fork() 后父进程退出,子进程调用 setsid() 创建新会话。SIGSTOP)暂停。查看状态:
ps -eo pid,stat,cmd # 显示 PID、状态、命令
wait() 回收其状态。init/systemd 回收)。SIGCHLD 信号。ulimit 或 cgroups(控制组)。ulimit -a # 查看限制
ulimit -n 1024 # 设置打开文件数限制
top -p $(pgrep -f "process_name") # 监控特定进程
kill -15 $(pgrep -f "process_name") # 优雅终止
nohup python script.py > log.txt 2>&1 &
disown # 从当前 shell 分离
ps、top、kill 等工具进行日常操作。如需深入某个方向(如内核调度、容器进程管理),可进一步探讨!