概述
在工作中,有时下班了,但是想执行拉取代码或者代码编译,这种事情比较耗时,点电脑需要关闭,那就不得不后台执行编译或者运行命令,常见的有nohup或者screen两种。
nohup
关闭终端时,会触发SIGHUP信号,通过nohup来忽略这个信号,通过"&"把命令放到后台执行,使用方式:
nohup <Command> [Arg] &
执行上述命令后,需要多敲一次回车键,让命令回到后台,可以通过jobs命令来查看当前放到后台的命令,fg将后台中的命令调至前台继续运行,bg将一个在后台暂停的命令,变成继续执行
如果后台有多个命令,可以用fg/bg %jobnumber
将命令调出,%jobnumber
是通过jobs
命令查到的后台正在执行的命令的序号。
此方法可用于关机时后台编译。
screen
Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。
使用方式:
直接在终端执行screen,会创建一个执行shell的全屏窗口,使用exit命令退出。使用方式:
screen -dmS <screen-name> <Command>
执行上述命令后,会创建一个状态为detached
的screen会话,执行对应的Command,screen-name
为这个会话的名字,也可以不用S
参数,不指定会话名字。
只要不杀掉这个screen会话就可以一直在后台运行,可以使用screen -ls
查看已创建的screen,使用screen -r <screen_pid>
可以恢复,进入到这个screen
会话。
此方法可用于关机时后台编译。
参考链接:https://blog.csdn.net/qq_28832135/article/details/79831700