精华文章收藏

nohup、screen、&进程前后台切换查看

2018-07-04  本文已影响75人  chaimol

1.1. 程序后台运行(命令结尾加上“空格&”) 注意,此种方式挂起的程序,可能会莫名其妙的挂掉。谨慎使用。

wget http://www.zmaize.com/img/1.jpg &

1.2. 程序在前台运行改到后台

wget http://zmaize.org/1.jpg 

按下Ctrl+Z ,暂停当前进程。

bg %1   #进程转为后台执行
ps #查看本用户后台进程
top #查看服务器所有后台进程
jobs -l #查看本用户后台进程的状态

1.3.后台转前台执行

  fg %1  #后台转前台执行

1.4. 终止进程

kill %1

当同时有多个进程时,可以根据需要把%1改为对应的%n,n是指正整数。

2. nohup的使用

nohup <command line> &
例如:nohup ping www.bai.com &
但是注意,nohup会把默认的错误输出,输出到输出文件。某些程序不能使用nohup,否则会把nohup的输出错误加到输出文件。例如:bwa程序不能使用nohup。

3.screen的使用

screen是相当于把一个屏幕开到后台。这样从另一个窗口退出时,程序会继续在后台执行。
screen 用法
screen -S test1#创建一个名为test1的screen,同时进入到该session。
screen -ls#列出当前所有的screen session name。
screen -d session name#注意:此处的session name 就是上面的session name. 结束该session
screen -r session name#回到该session。
screen -d -r session name#结束当前session,回到session name的该session。
按下Ctrl+A+D退出当前的screen,该screen仍在后台执行,回到之前的screen。
当screen出现

There is a screen on:
        4195.cooperate  (Attached)
1 Socket in /var/run/screen/S-root.

错误时,此时是无法使用screen -r session name回到该进程的。
需要先使用,screen -d session name结束该session,然后screen -r session name即可进入到该session.

上一篇 下一篇

猜你喜欢

热点阅读