Linux中ps/kill/execl的使用

ps命令:

ps -aus或者ps -ajx或者 ps -ef可以查看有哪些进程。加上 | grep "xxx" 可以查看名为”xxx"的进程。

ps -aus | grep "xxx" 

kill命令:
 

kill -9 pid 杀死某个进程

kill -l 查看系统有哪些信号

execl函数:

如果想在一个进程内部执行系统命令或者应用程序,优先应该想到如下方式:

先fork(),然后在子进程里面执行execl拉起可执行程序或者命令。

调用execl函数后,子进程的代码段会被替代。

但是子进程的地址空间没有变化,子进程的PID也没有变换。

函数原型:

int execl(const char *pathname, const char *arg, .../* (char  *) NULL */);

  • path :要执行程序的路径
  • 变参 arg:要执行的程序的需要的参数
  • arg:占位,通常写应用程序的名字
  • arg后面的:命令的参数
  • 参数写完写NULL 

返回值:成功,不返回。

拉起命令:

Linux中ps/kill/execl的使用_第1张图片

结果:

执行成功不会打印perror。

Linux中ps/kill/execl的使用_第2张图片

这是写的testExe.c文件:

Linux中ps/kill/execl的使用_第3张图片

随后生成testExe程序。

Linux中ps/kill/execl的使用_第4张图片

 拉起程序:

Linux中ps/kill/execl的使用_第5张图片

 结果:

Linux中ps/kill/execl的使用_第6张图片

execlp函数:

函数原型:int execlp(const char *file, const char *arg, .../* (char  *) NULL */);

  • file:执行命令的名字,根据PATH环境变量来搜索该命令
  • arg:占位
  • arg后面的:命令的参数
  • 参数写完写NULL;

返回值:成功不返回。 

用法: execlp("ls","ls","-l",NULL);
 

execl一般用于执行用户自定义的的应用程序

execlp一般用于执行系统命令,可以直接写命令名字,不写路径

你可能感兴趣的:(linux,服务器,运维)