简述linux进程的启动、终止的方式以及如何进行进程的查看

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简述linux进程的启动、终止的方式以及如何进行进程的查看相关的知识,希望对你有一定的参考价值。

Linux系统中的进程分为:独立守护进程和被动守护进程。 独立守护进程由相应的独立启动,而被动守护进程由Xinetd服务监听启动。 例如:邮件服务器配置守护进程sendmail就是独立守护进程,可以用service命令启动,而pop3协议就以被动守护进程方式启动,需要修改/etc/xinetd.d目录下的相应守护进程文件ipop3,再重新启动xinetd的方式启动。

查看进程可以用:ps 列出当前所有的后台进程 删除进程则用kill命令。kill命令的语法格式很简单,大致有以下两种方式: kill [-s 信号 | -p ] [ -a ] 进程号 ... kill -l [信号] -s 指定需要送出的信号。既可以是信号名也可以对应数字。 -p 指定kill命令只是显示进程的pid,并不真正送出结束信号。 -l 显示信号名称列表,这也可以在/usr/include/linux/signal.h文件中找到。 一般用法: ps列出当前所有的后台进程 kill PID。某个进程已经挂死或闲置,使用kill命令却杀不掉,则必须必须发送信号9,强行关闭此进程。
参考技术A 在系统中的应用程序中有进程查看器,或用快捷键shift+F2。终止可以用面板小工具中有终止进程小工具,或用xkill命令也可以。 参考技术B 你的linux是什么版本?suse?红帽子?ubuntu?...ps -ef 查看所有进程&程序名 启动程序kill -9 进程ID 删除进程 参考技术C chkconfig --list top(shift+m)kill -9 PID

Linux命令nohup和&差异,查看进程和终止进程!

最近在开发dueros的技能,官方提供的PHPSDK中有多个实力,而运行实例的命令如下是

nohup php -S 0.0.0.0:8029 myindex.php &
技术分享图片

从命令来看,肯定是在8029启动了一个服务,因为之前从来没有用过这个Linux命令,所以对这个命令很好奇。比如,这个命令的标准格式是什么,参数是什么,如何查看这个进程以及如何结束这个进程。后面还有一个&,不知道又是什么功效?

语法:nohup Command [ Arg … ] [ & ]

用途:不挂断地运行命令。

  无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。

  如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

  如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。

退出状态:该命令返回下列出口值:   
  126 可以查找但不能调用 Command 参数指定的命令。   
  127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。   
  否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。
技术分享图片

从网络资料可知,nohup命令格式,用法说如如上。   最后的&代表用途是让进程在“后台运行”。 一般情况下nohup和&都是组合使用。

 

下面就举个例子。

1. 用nohup和&创建进程

nohup php -S 0.0.0.0:8029 myindex.php &
[1] 5701
[[email protected] ~]# nohup: ignoring input and appending output to `nohup.out‘

执行命令后会返回进程ID:5701,在当前目录创建一个nohup.out文件。

 

2. 查看这个进程。

[[email protected] ~]# jobs -l
[1]+  5701 Running                 nohup php -S 0.0.0.0:8029 myindex.php &

Jobs -l  jobs命令只看当前终端生效的,关闭终端后,其他终端就无效了

[[email protected] ~]# ps -aux|grep index.php
Warning: bad syntax, perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.8/FAQ
root      5701  0.0  0.5 195876 10284 pts/0    S    11:34   0:00 php -S 0.0.0.0:8029 myindex.php
root      5982  0.0  0.0 103188   880 pts/0    S+   11:39   0:00 grep index.php
[[email protected] ~]# ps -aux|grep index.php|grep -v grep
Warning: bad syntax, perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.8/FAQ
root      5701  0.0  0.5 195876 10284 pts/0    S    11:34   0:00 php -S 0.0.0.0:8029 myindex.php

  

如果你断开终端之后,再次登录,可以使用 ps -aux命

a:显示所有程序 
u:以用户为主的格式来显示 
x:显示所有程序,不以终端机来区分

通过添加 |grep -v grep 可以排除自身进程。

 

3. 结束进程

[[email protected] ~]# kill -9 5701

  

如果需要结束进程,只需用kill命令,参数就是进程号。这个创建的时候可以知道。通过,第二部的命令也可以获取。

-9 是kill命令的一个参数,可以理解为“强杀”,比起不带参数杀伤力更强。

 

4.扩展内容

使用awk命令获得进程ID

[[email protected] ~]# ps -aux|grep index.php|grep -v grep| awk ‘{print $2}‘
5701

print $2 代表取第二个列。从上面ps的结果中可以看到,第二列就是进程ID。

 

使用 lsof 查看端口使用情况

[[email protected] ~]# lsof -i:8029
COMMAND  PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
php     6736 root    4u  IPv4 49611460      0t0  TCP *:8029 (LISTEN)

  

在启动某个服务的时候我们常常会遇到端口被占用的情况,此时,我们非常希望知道是什么命令占用了这个端口,就可以用这个命令。

 

好了,这么一圈下来,nohup和&应该大致有个了解了吧。

 

以上是关于简述linux进程的启动、终止的方式以及如何进行进程的查看的主要内容,如果未能解决你的问题,请参考以下文章

Linux命令nohup和&差异,查看进程和终止进程!

简述Linux进程间通信的几种方式

简述Linux进程间通信之命名管道FIFO

linux系统启动流程

内核启动流程

Linux主机IP地址配置