linux编程-进程简介

什么是进程?

        可执行程序运行的实例被称为进程。例如,当我们在打开一个程序两次时,会看到两个窗口,每个窗口就是一个运行实例,即进程。

用进程可以实现高级编程,使一个应用程序一次调用多个进程协同工作,实现软件性能的稳定和快速。

1.进程ID

        当linux 系统启动之后,其中会运行很多进程。当对于这么多的进程我们怎么查看,怎么区分它们呢。这就引出进程ID概念(Process ID,一般用pid表示)。pid是系统有序分配的一个16位数字,没个进程拥有唯一的一个pid,因此linux 系统通过pid区分每一个进程。每一个进程都由别parent进程启动的(除了init之外,ini是系统启动时第一个进程),父进程ID一般用ppid。linux 进程的启动像一棵树,init是这棵树的root.除了叶子节点的进程没有子进程外,别的节点都有parent进程和child进程。
以下代码,展示如何获取pid和ppid

#include "stdio.h"
#include "unistd.h"
#include "sys/types.h"

int main()
{
        pid_t pid,ppid;
         pid = getpid();
         ppid = getppid();
         printf("Process ID:%d\n",pid);
         printf("Paretn ID:%d\n",ppid);

         return 0;

}

        当你在同一个终端窗口中运行多次之后会发现,pid每次都不同,ppid不变。这是因为每次启动一个新进程,而用的是同一个shell(即父进程)。


2.ps命令简介
        系统中通常运行多个进程,我们如果需要查看可以在终端用ps查看如果在终端中只输入ps,那么会列出以下两种进程:1.控制该终端的进程。2.通过该终端打开的进程。
        如果要查看更加详细的信息,可以调用:
        ps -e -o pid,ppid,command
        -e :显示正在运行于linux系统中的所有进程
        -o :显示进程的哪些信息。在这里pid,ppid,command分别表示:进程id,父进程id,运行在该进程中的命令行

3.终止进程
       可以用以下命令行终止一个进程:
       kill 进程id
在用kill终止一个进程时,进程会接受到一个SIGTERM信号,如果在要kill的进程中没有对SIGTERM进行明确处理,会立刻终止进程,否则执行SIGTERM处理函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值