目录
前言
当你用shell启动一个程序时,往往他是在前台工作的。程序会一直占用终端命令行,例如你在前台解压的时候必须等着,期间干不了别的事(除非另开一个终端)。 例如经常用连接到远程服务器执行脚本的时候,如果本地网络中断后,这个时候前台进程就结束了,比较的懊恼,必须重新执行。
简单例子
在后台运行一个命令,例如使用**&**符号。
./shella.sh &
使用jobs命令查看后台作业列表。
添加**-l**选项时,它提供更详细的输出,显示作业的详细信息。
jobs
jobs -l
使用fg命令将某个作业切换到前台。例如,如果作业号为1。
fg %1
使用(ctrl + z)可以将一个正在前台执行的命令放到后台,并且处于暂停状态。
bg
使用bg将一个在后台暂停的命令,变成在后台继续执行。
kill %1
使用 kill %1可以直接终止后台运行的程序。
nohup ./myscript.sh &
这个命令将执行**./myscript.sh** 脚本,并且即使你退出当前终端,该脚本仍将继续在后台运行(利用ps 、jobs等可以查看到)。
以防止其输出被挂断,nohup 会将命令的输出追加到一个文件(默认为nohup.out)。