https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=qqwovx6h
top命令按内存和cpu排序
目录
按进程的CPU使用率排序#
运行top命令后,键入大写P。
有两种途径:
a) 打开大写键盘的情况下,直接按P键
b) 未打开大写键盘的情况下,Shift+P键
按进程的内存使用率排序#
运行top命令后,键入大写M。
有两种途径:
a) 打开大写键盘的情况下,直接按M键
b) 未打开大写键盘的情况下,Shift+M键
按Enter键可以查看,及时的情况。
TOP交互命令如下
c: 显示完整的命令
d: 更改刷新频率
f: 增加或减少要显示的列(选中的会变成大写并加*号)
F: 选择排序的列
h: 显示帮助画面
H: 显示线程
i: 忽略闲置和僵死进程
k: 通过给予一个PID和一个signal来终止一个进程。(默认signal为15。在安全模式中此命令被屏蔽)
l: 显示平均负载以及启动时间(即显示影藏第一行)
m: 显示内存信息
M: 根据内存资源使用大小进行排序
N: 按PID由高到低排列
o: 改变列显示的顺序
O: 选择排序的列,与F完全相同
P: 根据CPU资源使用大小进行排序
q: 退出top命令
r: 修改进程的nice值(优先级)。优先级默认为10,正值使优先级降低,反之则提高的优先级
s: 设置刷新频率(默认单位为秒,如有小数则换算成ms)。默认值是5s,输入0值则系统将不断刷新
S: 累计模式(把已完成或退出的子进程占用的CPU时间累计到父进程的MITE+ )
T: 根据进程使用CPU的累积时间排序
t: 显示进程和CPU状态信息(即显示影藏CPU行)
u: 指定用户进程
W: 将当前设置写入~/.toprc文件,下次启动自动调用toprc文件的设置
<: 向前翻页
>: 向后翻页
?: 显示帮助画面
1(数字1): 显示每个CPU的详细情况
原文链接:https://blog.csdn.net/iteye_7000/article/details/82336617
通常,我喜欢将java程序写好后放在Linux服务器上跑,这样可以解脱出自己的机器做其他事情。今天突然不小心将Linux客户端(xshell)关闭了。发现原来在linux服务器上跑的程序终止了,前功尽弃。
如果能实现这样一个功能该多好。将我的程序放在Linux下跑,我退出客户端时候不影响程序的运行。当我再一次登陆客户端的时候,依旧能找到原来再跑的程序。
经过尝试,方法如下:
命令格式为: nohup command > log.file 2>&1 &
解释:
1、nohup使command命令不受shell退出的影响,忽略所有的挂起信号。
2、command是我们要在linux下执行的命令或程序。
3、>log.file将command命令输出的结果重定向到log.file文件中保存。
4、2>&1表示将错误输出重定向到标准输出。由于标准输出已经重定向到了log.file文件,因此如果命
令运行时发生错误,则错误提示也会被发送到log.file文件中。
5、最后的&代表此条命令是后台执行的。
当运行了nohup command > log,file 2>&1 &后,command命令就进入了后台运行。linux终端可以用来做其他事情。即便是退出终端,只要是不关闭linux服务器,command的命令就会一直执行到完成。
如果想查看command命令的执行情况,可以做如下操作:1、如果当前终端没有关闭,输入命令jobs即可。2、如果终端已经关闭了,则重新打开终端,输入ps -ef | grep java (假设此处的command是一条java命令)。其中-e表示显示所有进程,-f表示以全格式显示。
如果想查看命令的标准输出情况,可以查看log.file文件。命令为tail -f log.file。其中参数-f表示即时输出文件变化后追加的数据。要退出,则直接按ctrl+c即可。
如果想终止后台运行的程序,使用jobs或者ps查看程序的pid。使用命令 kill %pid 杀掉指定的任务。
若命令已经在前台执行,要转为后台执行。则ctrl+z将任务挂起。然后bg %n使其后台继续执行。其中n为任务的pid。
如果将后台命令转为前台命令,使用fg %n。 n为任务的pid,使用jobs或者ps均可查到。
command & 直接在后台运行程序
ctrl+c 退出前台的命令,不再执行
ctrl+z挂起前台命令暂停执行,回到shell命令行环境中
bg 将刚挂起的命令放到后台运行
bg %3 将第三个job放到后台运行
kill %3 杀死第三个job,不再执行
fg 将刚挂起的命令返回前台运行
fg %3 将第三个job返回前台运行
jobs 察看当前shell下运行的所有程序;带+表示最新的jobs;带-表示次新的jobs;其他jobs不带符号
nohup=no hang up,不挂断,如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程.长命令必须写在shell文件中,否则nohup不起作用
nohup command & //该命令的一般形式
nohup command > myout.file 2>&1 & //log输出到myout.file,并将标准错误输出重定向到标准输出,再被重定向到myout.file
一. &
& 当在前台运行某个作业时,终端被该作业占据;可以在命令后面加上& 实现后台运行。例如:sh test.sh &
适合在后台运行的命令有find、费时的排序及一些shell脚本。
在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。
不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:command > out.file 2>&1 &
上面命令解释:
①command命令的输出重定向到out.file
②2>&1 将 2(标准错误输出)和 1(标准输出)两个合并。
③最后一个&表示在后台运行。
用&你关掉执行这个命令的终端,该命令会被终止。例如用的SSH关了。
二. nohup
想解决&那种用SSH后台执行一个命令,然后关掉SSH命令就被终止的尴尬,就要用到 nohup命令。
nohup 的用法和&一样,只是在命令前要加上nohup:nohup command &
默认情况下,nohup会自动忽略输入,并把输出重定向到一个叫nohup.out的文件中。当然你也可以像上面单独使用&时候一样,自己重定义输出输入。
使用jobs -l命令,可以查看目前在后台运行的任务
使用fg命令,可以把后台的任务调到前台运行
这时候按下ctrl+z:把任务扔到后台,并且暂停
再通过bg命令,可以把后台中暂停的任务重启
在jobs查询到进程号之后,可以通过kill杀死后台任务
了nohup之后,很多人就这样不管了,其实这样有可能在当前账户非正常退出或者结束的时候,命令还是自己结束了。所以在使用nohup命令后台运行命令之后,需要使用exit正常退出当前账户,这样才能保证命令一直在后台运行