当前位置:文档之家› linux进程管理篇

linux进程管理篇

目录:(内容较多,加个目录)|-进程管理进程常用命令|- w查看当前系统信息|- ps进程查看命令|- kill终止进程|- 一个存放内存中的特殊目录/proc|- 进程的优先级|- 进程的挂起与恢复|- 通过top命令查看进程计划任务|- 计划任务的重要性|- 一次性计划at和batch|- 周期性计划crontab进程管理的概念进程和程序区别1.程序是静态概念,本身作为一种软件资源长期保存;而进程是程序的执行过程,它是动态概念,有一定的生命期,是动态产生和消亡的。

2.程序和进程无一一对应关系。

一个程序可以由多个时程公用;另一一方面,一个进程在活动中有可顺序地执行若干个程序父子进程的关系1.子进程是由一个进程所产生的进程,产生这个子进程的进程称为父进程2.在linux系统中,使用系统调用fork创建进程。

fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。

3.父进程终止子进程自然终止。

前台进程和后台进程前台进程在shell提示处理打入命令后,创建一个子进程,运行命令,Shell等待命令退出,然后返回到对用户给出提示符。

这条命令与Shell异步运行,即在前台运行,用户在它完成之前不能执行别一个命令很简单,我们在执行这个查找命令时,无法进行其它操作,这个查找就属于前台进程后台进程在Shell提示处打入命令,若后随一个&,Shell创建子进程运行此命令,但不等待命令退出,而直接返回到对用户给出提示。

这条命令与Shell同步运行,即在后台运行。

“后台进程必须是非交互式的”再来看这个命令就变成了后台进程,我们用同样的条件进行查找,把查找记过放到hzh/test/init.find这个文件中。

不影响我们前台其它的操作。

进程的状态学过操作系统原理的同学应该可以看得懂,不懂再去翻翻书,不知道你有没有想起当时教这门课的老师呢?呵呵常用进程命令w 查看当前系统信息w命令,我在之前的章节用曾用过,当时是查看当前用户信息,当然也可以查看到系统相关的信息。

作用:查看当前系统活动摘要。

[root@bogon cron]# w14:48:39 up 2:46, 1 user, load average: 0.00, 0.01, 0.00USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot pts/1 192.168.203.1 12:27 0.00s 0.17s 0.02s ww显示信息的含义:JCPU:以终端代号来区分,该终端所有相关的进程的进程执行时,所消耗的CPU时间会显示在这里PCPU: cpu执行程序消耗的时间WHAT:用户下在执行的操作load average :分别显示系统在过去1、5、15分钟内的平均负载程度。

FROM:显示用户从何处登录系统,“:0”的显示代表该用户时人X Windows下,打开文本模式窗口登录的IDLE:用户闲置的时间,这是一个计时器,一旦用户执行任何操作,该计时器便会被重置查看个别用户信息:w [用户名][root@localhost ~]# w root23:32:01 up 52 min, 1 user, load average: 0.00, 0.00, 0.00USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot pts/1 192.168.203.1 22:53 0.00s 0.10s 0.01s w rootps进程查看命令ps应该是查看进程用得最普遍的命令,我在之前的面试中都被多次问到过。

因为linux不是面试我的重点,所以,我后来特意去查了一下。

ps我以前的理解就是photoshop的缩写。

哈哈!因为以前本专门跑去学过平面设计。

吼吼,扯远了!进程查看命令:ps常用选项:-a:显示所有用户的进程-u:显示用户名和启动时间-x:显示没有控制终端的进程-e:显示所有进程,包括没有控制终端的进程-l:长格式显示-w:宽行显示,可以使用多个w进行加宽显示应用实例:ps 查看隶属自己的进程root@fnngj-virtual-machine:~# psPID TTY TIME CMD1370 pts/0 00:00:00 bash3185 pts/0 00:00:00 psroot@root:~# ps -lF S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD4 S 0 5941 5801 4 80 0 - 1882 wait pts/2 00:00:00 bash4 R 0 6000 5941 0 80 0 - 1121 - pts/2 00:00:00 ps看一下上面的选项都指的什么。

PID :进程号PPLD:父进程的进程号TTY:进程启动的终端STAT:进程当前状态(S休眠状态,D不可中断的休眠状态,R运行状态,Z僵死状态,T停止)NI:进程优先级TIME:进程自从启动以后启用CPU的总时间COMMAND/CMD:进程的命令名USER:用户名%CPU:占用CPU时间和总时间的百分比%MEM:占用内存与系统内存总量的百分比实列:ps -u or -l查看隶属于自己进程详细信息root@root:~# ps -u or -lps -le or -aux查看所有用户执行的进程的详细信息root@root:~# ps le or -auxps -aux --sort pid可按进程执行的时间、PID、UID等对进程进行排序root@root:~# ps -aux --sort pidps -uU fnngj 查看某个用记启动的进程root@root:~# ps -uU fnngjps -le | grep init查看指定进程信息root@root:~# ps -le | grep initkill终止进程在winddow下面,我们要结束一个进程,最简单的方式就是关闭这个程序,相应的进程也会随之结束,遇到不能关闭的情况。

会打开任务管理器结果掉。

那么在linux下如果做呢?我们可以使用kill命令来终止进程。

为什么要杀死进程?* 该进程点用了过多的CPU时间* 该进程缩住了一个终端,使其他前台进程无法运行* 运行时间过长,但没有预期效果* 产生了过多到屏幕或磁盘文件的输出* 无法正常退出kill用法:关闭进程:kill [进程号]root@root:~# kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+338) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+843) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47)SIGRTMIN+1348) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-1253) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-758) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-263) SIGRTMAX-1 64) SIGRTMAX我们看到每个编号对应一个含义,如9) SIGKILL;9标注的是SIGKILL ,那么我们可用9来终止进程。

关闭进程:kill -s 9 [进程号](强行关闭)kill -9 [进程号](强行关闭)上面的两种形式都可以强行关闭进程。

重启进程:有时候我们需要把进程重新启动一下,可以下面的命令完成。

kill -1 [进程号](重启进程)root@root:~# kill -1 3567 重启PID为3567的进程关闭图形程序:关闭图形程序: xkill当你在终端下输入这个命令时,你的鼠标会变成一个小叉子,你只去点你想要关闭的窗口就可以关闭了其它:结束所有进程: killall查找服务进程号: pgrep [服务名称]关闭进程: pkill [进程名称]一个存放内存中的特殊目录/proc这个目录比较特殊,他并不在我们磁盘上,而在我们的内存当中;当前系统运行的所有进程都动态的存放在这个目录中。

root@root:~# ls /proc1 14 15 187 287 820 dma net10 1401 1524 19 3 827 driver pagetypeinfo1037 1403 1525 1906 32 830 execdomains partitions1043 1413 1527 1919 34 832 fb sched_debug1047 1414 1531 2 35 834 filesystems schedstat11 1415 1536 20 36 840 fs scsi1172 1418 1544 2024 454 842 interrupts self12 1423 1555 2025 459 843 iomem slabinfo.....................上面每个编号就是以我们当前进程PID所命令的目录名。

当然,当前目录下也存放了一些我们系统的信息查看我们当前cpu的信息root@root:~# cat /proc/cpuinfoprocessor : 0vendor_id : GenuineIntelcpu family : 6model : 23model name : Pentium(R) Dual-Core CPU T4500 @ 2.30GHzstepping : 10cpu MHz : 2294.000cache size : 1024 KBfdiv_bug : nohlt_bug : nof00f_bug : nocoma_bug : nofpu : yesfpu_exception : yescpuid level : 13wp : yesflags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmovpatpse36 clflush dts acpi mmx fxsr sse sse2 ss nx constant_tsc up arch_perfmonpebsbts xtopology tsc_reliable aperfmperf pni ssse3 hypervisor dtsbogomips : 4588.00clflush size : 64cache_alignment : 64address sizes : 40 bits physical, 48 bits virtualpower management:查看内存信息root@root:~# cat /proc/meminfoMemTotal: 508344 kBMemFree: 10668 kBBuffers: 10700 kBCached: 96056 kBSwapCached: 34124 kBActive: 231384 kBInactive: 231576 kBActive(anon): 178524 kBInactive(anon): 178316 kBActive(file): 52860 kBInactive(file): 53260 kB........................查看当前分区的信息root@root:~# cat /proc/partitionsmajor minor #blocks name8 0 20971520 sda8 1 20446208 sda18 2 1 sda28 5 522240 sda5进程的优先级我们学过操作系统原理的同学都知道,我们系统在执行程序时有会先后顺序的,但为什么我们的电脑可以边听音乐,边聊QQ,边上网,甚至还可以同时挂几个游戏。

相关主题