程序、进程、线程、服务

本文介绍了程序、进程、线程的基本概念,强调了进程间的关联性,如子父进程,以及进程管理中的信号使用,如SIGHUP、SIGINT、SIGKILL和SIGTERM。还提到了常驻内存的服务和如何通过kill和killall命令进行进程控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1 概念介绍

程序(program):指二进制程序,放置在存储媒介(如硬盘,光盘,磁带等),以物理文件形式存在,静态概念,是保存在磁盘上的一系列文件

进程(process):程序被触发后,执行者的权限与属性、程序的代码与所需数据都会被加载到内存中,操作系统给予一个标志符(PID),可以说进程就是一个正在运行的、动态的程序

线程:线程是CPU资源分配的最小单元

           线程需要的资源更少,可以看做是一种轻量级的进程

    ​    ​   线程会共享进程中的内存,线程也有独立的空间(栈、程序计数器)

           线程相互通信更加方便

子父进程:进程彼此之间具有关联性,被父进程触发的命令就是子进程,比如下图3188356是3548179的父进程,第2个bash是从第1个产生的

如果某个进程无法关闭或删除,可能是父进程又生成了一个,可以检查它的父进程,然后删掉

[root@host-192-168-177-101 ~]# ps -l | grep bash
F S   UID     PID    PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0 3188356 3188347  0  80   0 - 29158 do_wai pts/0    00:00:00 bash
4 S     0 3548179 3188356  0  80   0 - 29123 do_wai pts/0    00:00:00 bash

服务(daemon):常驻内存的进程,包括系统或网络服务,比如crond,named

2 进程管理

进程之间是可以相互控制的,可以通过给于进程一个信号(signal)去告知它做什么。

发送信号主要通过kill 或者 killall

  • kill -signal PID(获取PID要通过ps)

常用如下

代号名称内容
1SIGHUP清空指定进程在内存中的数据,类似于Ctrl+C
2SIGINT中断进程的运行
9SIGKILL强制中断进程的运行,示例:kill -9 3671
15SIGTERM正常的方式结束进程
  • killall -signal 命令的名称

杀死指定名字的所有进程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值