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.