shell编程之基本bash命令8

文章来源:角膜穿孔   发布时间:2018-2-11 16:44:25   点击数:
  

跟踪运行在系统中的程序是我们Linux系统管理员面临的最复杂的任务之一,尤其是图形化桌面集成了大量的应用时候,此时,系统中总会运行着大量的应用程序。我们来看看管理进程的系列命令。

探查进程命令ps

实时监测进程命令top

结束进程命令kill和killall

探查进程命令ps:ps命令能够输出运行在系统上的所有程序的许多信息。今天我们以Ubuntu为平台,看一下其用法:

$psPIDTTYTIMECMDpts/:00:00bashpts/:00:00ps

默认情况下,它只显示运行在当前控制台下仅属于当前用户的进程。上面的例子中,我们可以看到,目前我们只运行了bashshell和ps命令。它依次显示了程序的进程ID(PID),运行的终端(tty)以及进程所用的CPU时间。

我们先罗列一些Unix风格下的ps参数:

参数用途-A显示所有进程-e显示所有进程-a显示除控制进程和无终端进程外的所有进程-d显示除控制进程外的所有进程-f显示完整格式的输出-F显示更多额外输出(相对于-f参数)-l显示长列表-j显示任务信息

更多可以使用#ps—helplist或#ps—helpall查看该命令的一些参数信息。

其实我们可以根据自己的使用习惯,记住一些有用的参数即可。例如:

$ps-efUIDPIDPPIDCSTIMETTYTIMECMDroot17:11?00:00:01/sbin/initroot27:11?00:00:00[kthreadd]root:11?00:00:00[ksoftirqd/0]root:11?00:00:00[kworker/0:0H]root:11?00:00:00[kworker/u4:0]root:11?00:00:00[rcu_sched]root:11?00:00:00[rcu_bh]root:11?00:00:00[migration/0]root:11?00:00:00[watchdog/0]root:11?00:00:00[watchdog/1]root:11?00:00:00[migration/1]root1:11?00:00:00[ksoftirqd/1]root:11?00:00:00[kworker/1:0]root1:11?00:00:00[kworker/1:0H]root1:11?00:00:00[kdevtmpfs]root1:11?00:00:00[netns]root1:11?00:00:00[perf]root1:11?00:00:00[khungtaskd](后面的省略了)

这个参数根据上表,我们已经知道该命令显示所有运行在系统上的进程(-e)并扩展了输出(-f)。我们依次来看里面的参数:

UID:启动该进程的用户

PID:进程的进程ID号

PPID:父进程的进程号(前提是该进程是由其他进程启动的)

C:该进程生命周期中的CPU利用率

STIME:进程启动时的系统时间

TTY:进程启动时的终端设备

TIME:运行该进程需要累计的CPU时间

CMD:启动的程序的名称。、

我们再来看一下-l的参数:

$ps-lFSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD0S14638-waitpts/:00:00bash0R14793--pts/:00:00ps

其中的参数解释如下:

F:内核分配给进程的系统标记

S:进程的状态:

S代表休眠

R代表可运行并正等待运行

O代表正在运行

Z代表僵化,进程已经结束但父进程也也不存在

T代表停止

PRI:进程优先级,数字越大,优先级越低

NI:谦让度值用来参与决定优先级

ADDR:进程的内存地址

SZ:如果进程被换出了,所需要的交换空间的大小参考值

WCHAN:进程休眠的内核函数的地址。

这些都是大体的ps命令需要大家知道的一些知识。关键是查看进程,需要有我们的一套方案,比如这个#ps-ef命令,就可以了。

这个命令有个不足,那就是它仅仅是显示了特定的一个时间点的信息。并不是实时监控进程的命令。这一点也要注意。

ps命令有很多风格,例如Unix、BSD以及GNU,不同风格其参数或方式可能有所不同。例如GNU风格下的—forest参数:

$ps-ef--forestUIDPIDPPIDCSTIMETTYTIMECMDroot27:11?00:00:00[kthreadd]root:11?00:00:00\_[ksoftirqd/0]root:11?00:00:00\_[kworker/0:0H]root:11?00:00:00\_[kworker/u4:0](略)root:11?00:00:00/usr/sbin/sshd-Droot46298:12?00:00:00\_sshd:vagrant[priv]vagrant:12?00:00:00\_sshd:vagrant

pts/0vagrant4638007:12pts/:00:00\_-bashvagrant4855008:05pts/:00:00\_ps-ef--forestroot:11?00:00:05/usr/bin/dockerd-Hfd://

从这里可以让大家很方便的看出进程的层次关系信息,让我们跟踪子父进程变得容易了很多。

如果有兴趣,大家可以从网上查询不同风格的ps命令的各个参数的用法。

转载请注明出处。了解更多,请







































北京什么医院看白癜风最好
白癜风医院哪家最权威
转载请注明:http://www.iwkqm.com/jbrs/7817.html