linux前台,后台命令

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正常退出当前账户,这样才能保证命令一直在后台运行

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值