进程相关命令

查看进程(快照)

ps aux / ajx
// a:显示终端上的所有进程,包括其他用户的进程
// u:显示进程的详细信息
// x:显示没有控制终端的进程
// j:列出与作业控制相关的信息

实时显示进程的动态

top

// 可以在使用top命令时加上-d来指定显示信息更新的时间间隔,在top命令执行后,可以按以// 下按键对显示的结果进行排序:
/*
 M 根据内存使用量排序
 P 根据CPU占用率排序
 T 根据进程运行时间长短排序
 U 根据用户名来筛选进程
 K 输入指定的PID杀死进程
*/

杀死进程

kill [-9] pid
kill [-signal] pid
kill -l  //列出所有信号
killall name  //根据进程名杀死进程

后台运行

// 命令行后加取地址符 &

//
./hello &

进程号获取

pid_t get pid(void); // 获取当前进程id
pid_t get ppid(void); // 获取当前进程父进程id
pid_T get pgid(void); // 获取当前进程组的id

进程创建

/*
    进程创建
        #include <sys/types.h>
        #include <unistd.h>

        pid_t fork(void);
            调用一次,返回两次,0为子进程,> 0为父进程,如果返回-1,则创建失败
            并发执行
            相同但是独立的地址空间
            共享文件
            刚fork时,子进程和父进程指向相同的虚拟地址空间,且页面都标记为只读,私有的写时复制
            只有两个进程中任意一个进行写操作时,就会触发写时复制

*/
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>


int main()
{
    pid_t pid = fork();

    int a = 0;
    if(pid == 0)
    {
        a++;
        printf("In Child Process, and the pid is %d, the ppid is %d \n", getpid(), getppid());
    }
    else
    {
        a++;
        printf("In Parent Process, and the pid is %d, the ppid is %d \n", getpid(), getppid());
    }
    printf("%d \n", a);

    return 0;
}

 


 

posted @ 2023-04-27 10:43  WTSRUVF  阅读(24)  评论(0编辑  收藏  举报