由于我们平时使用windows系统居多,很容易就想到windows任务管理器的进程查看表。那么如果用linux,如何查看占用资源较高的程序呢?今天跟着嘻哈去学学怎么在linux下查看进程and杀进程:
查看进程
查看cpu占用最多的10个进程
只需运行(具体什么意思以后在考虑,嘻哈也有点晕菜,命令中的分号即代表第一行语句终止,功能类似matlab、C语言程序中的那个“;”)
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
效果如下
root@owncloud-512mb-sfo1-01:/# ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
www-data 7895 0.0 9.3 488500 46980 ? S Feb05 0:02 /usr/sbin/apache2 -k start
www-data 7894 0.0 9.3 484860 46772 ? S Feb05 0:01 /usr/sbin/apache2 -k start
www-data 7892 0.0 8.8 484408 43992 ? S Feb05 0:01 /usr/sbin/apache2 -k start
www-data 23373 0.0 8.9 489116 44788 ? S Feb06 0:00 /usr/sbin/apache2 -k start
www-data 23370 0.0 9.1 489288 45656 ? S Feb06 0:00 /usr/sbin/apache2 -k start
www-data 22023 0.0 8.2 483284 41068 ? S Feb06 0:00 /usr/sbin/apache2 -k start
www-data 16210 0.0 10.7 491124 53824 ? S Feb06 0:02 /usr/sbin/apache2 -k start
www-data 16112 0.0 10.1 490116 50748 ? S Feb06 0:02 /usr/sbin/apache2 -k start
www-data 14879 0.0 8.8 484872 44340 ? S Feb06 0:01 /usr/sbin/apache2 -k start
www-data 14178 0.0 9.8 487044 49180 ? S Feb05 0:02 /usr/sbin/apache2 -k start
root@owncloud-512mb-sfo1-01:/#
其中可看见对应的各类资源的占用情况,我们可以看到cpu是在第三列中,所以命令中的3,应该就是第三列的意思,大家应该可以想到看占用前10的内存(MEM)进程应该是什么命令了吧。
cup占用前K个进程使用如下命令:
ps -aux | sort -k3nr | head -K #K用数字表示
那么如果想要查看内存占用的话,看看我们之前分析的对不对吧!
查看内存占用最多的10个进程
只需运行(看,只是把3换成了4哦)
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
效果如下
root@owncloud-512mb-sfo1-01:/# ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
www-data 16210 0.0 10.8 491124 54456 ? S Feb06 0:02 /usr/sbin/apache2 -k start
www-data 16112 0.0 10.1 490116 50748 ? S Feb06 0:02 /usr/sbin/apache2 -k start
www-data 14178 0.0 9.8 487044 49180 ? S Feb05 0:02 /usr/sbin/apache2 -k start
mysql 1339 0.0 9.5 821188 47576 ? Ssl Jan29 6:10 /usr/sbin/mysqld
www-data 7895 0.0 9.3 488500 46980 ? S Feb05 0:02 /usr/sbin/apache2 -k start
www-data 7894 0.0 9.3 484860 46772 ? S Feb05 0:01 /usr/sbin/apache2 -k start
www-data 23370 0.0 9.1 489288 45656 ? S Feb06 0:00 /usr/sbin/apache2 -k start
www-data 23373 0.0 8.9 489116 44788 ? S Feb06 0:00 /usr/sbin/apache2 -k start
www-data 7892 0.0 8.8 484408 43992 ? S Feb05 0:01 /usr/sbin/apache2 -k start
www-data 14879 0.0 8.8 484872 44340 ? S Feb06 0:01 /usr/sbin/apache2 -k start
root@owncloud-512mb-sfo1-01:/#
查看内存占用前K个进程的命令是:
ps -aux | sort -k4nr | head -K #K用数字表示
杀死进程
要杀死进程使用kill命令,kill(杀)嘛 😛
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
我们仔细分析一下上文中命令的那个表格我们可以发现,每个进程都有一个之间的代号,即PID,比如(见第二个实例效果)我的/usr/sbin/mysqld这个进程的id就是1339,我们要杀死他就需要用kill来与他一战了。
代码很简单:
kill -s 9 1339
具体含义是什么呢,kill嘛不用说就是杀进程的命令,-s(signal信号)-s 9即表示强度为9,强制执行之意。
小贴士:kill -9, 这个强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。
定时任务
有时候需要系统定时重启什么的,我们需要用到的是crontab服务。
编辑文件:
crontab -e
文件中的格式如下:
minute hour day month dayofweek command
hour – 从0到23的整数
day – 从1到31的整数 (必须是指定月份的有效日期)
month – 从1到12的整数 (或如Jan或Feb简写的月份)
dayofweek – 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示)
command – 需要执行的命令(可用as ls /proc >> /tmp/proc或 执行自定义脚本的命令)
对于以上各语句,星号(*)表示所有可用的值。例如*在指代month时表示每月执行(需要符合其他限制条件)该命令。
比如,我们在里面输入
00 00 * * * reboot
保存之后就能让我们的小机器每天在0点0分重启了!
欢迎转载:注明转载出处就好:):嘻哈小屋 » 【充电】Linux如何杀进程和设置定时任务