Linux 系统中时刻运行着许多的进程,如果能够合理的管理它们,有益于系统性能的优化,
系统进程总共有五种不同的状态:
命令一:ps命令,用于查看系统中进程状态
格式:ps [参数]
查看进程与状态:ps -aux
查找某个特定的进程信息:ps -aux | grep 进程名
命令二:top命令,用于监视进程的活动与系统负载,格式为“top”
top命令类似于“强化版的Windows任务管理器”,命令行中输入top后如下所示:
top - 15:45:39 up 1:25, 4 users, load average: 0.00, 0.01, 0.05 Tasks: 485 total, 2 running, 483 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1867632 total, 657704 free, 607728 used, 602200 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 1011640 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1033 root 20 0 246636 6284 4824 S 0.3 0.3 0:06.33 vmtoolsd 3627 root 20 0 378052 18724 14728 S 0.3 1.0 0:06.21 vmtoolsd 8693 root 20 0 157960 2592 1548 R 0.3 0.1 0:00.05 top 1 root 20 0 125820 6644 3944 S 0.0 0.4 0:05.67 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.16 ksoftirqd/0 7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/0 10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/1 11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/2 12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/3 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/4 14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/5 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/6 16 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/7 17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/8 18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/9 19 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/10 20 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/11 21 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/12
前五行为系统整体的统计信息,具体如下:
命令三:pidof命令:用于查询某个特定程序的进程PID,格式为pidof [参数] [程序名称]
查询“sshd”进程的pid值:“pidof sshd”
[root@localhost ~]# pidof sshd 8302 8191 7085
命令四:kill命令,用于中止某个特定PID号码的进程,格式为kill [参数] [进程PID号]
强制中止PID为8302的进程(参数-9代表强制终止):
[root@localhost ~]# kill -9 8302
命令五:killall命令,用于终止某个特定名称的所有进程,格式为killall [参数] [进程名称]
终止名称为“sshd”的进程:
[root@localhost ~]# killall sshd
命令6:Ctrl+c、Ctrl+z、jobs、bg、fg命令
在终端中运行了一个命令后如果想立刻停止它,可以使用组合键ctrl+c,这样命令的进程将会彻底的
被终止。而ctrl+z是将命令的进程暂停(也叫挂载到后台或扔到后台)。
实例1:通过putty等工具连接远程linux主机,连接两个终端,分别为终端1和终端2,执行以下命令,
命令达到的效果为每秒向家目录的jobs.txt中追加一个字符串working
如下图所示:输入ctrl + z 后,终端2的命令的进程被暂停,终端1中的内容也不再追加
此时,使用jobs命令查看所有在后台运行着的进程:
[root@localhost ~]# jobs [1] 已停止 ( while true; do echo -n "working" >> ~/jobs.txt; sleep 1; done ) [2]- 已停止 ( while true; do echo -n "working" >> ~/jobs.txt; sleep 1; done ) [3]+ 已停止 ( while true; do echo -n "working" >> ~/jobs.txt; sleep 1; done )
在终端2中运行“bg 1” 命令,让后台的程序继续执行,此时终端1中的内容继续增加
在终端2中使用fg 1命令,将后台的进程调回到前台,程序依然执行,然后此时终端1中的内容又继续增加中
有些命令在执行时会不断的在终端中输出信息,影响到我们继续输入命令了,此时
便可以在这条命令的后面添加一个“&”符号,那么从一开始执行该命令就是在后台运行
(注意:不是在后台暂停,而是在后台运行),这个实验可以只用到一个终端,在终端中加入&后
可以继续使用tail -f jobs.txt进行查看,而且jobs.txt中的内容也确实一直在增加中...