flo*_*oyd 10 command-line job-control wget background-process
我wget
像这样在后台使用命令
wget -bq
Run Code Online (Sandbox Code Playgroud)
它打印
在后台继续,pid 31754。
但是当我输入命令时jobs
,我没有看到我的工作(虽然下载没有完成)。
Kus*_*nda 19
当使用wget
with -b
or 时,--background
它通过与当前 shell 分离(通过分叉子进程并终止父进程)将自己置于后台。由于不是 shell 将其作为异步作业置于后台,因此当您使用.jobs
要wget
在 shell 中作为异步(后台)作业运行,请使用
wget ... URL &
Run Code Online (Sandbox Code Playgroud)
如果这样做,您可能还想将输出重定向到某个文件(wget
使用 自动执行-b
),或者通过重定向到/dev/null
、 或使用-q
或来丢弃它--quiet
。
因为它把它自己放在了后台。使用&
告诉bash把它放到后台,并把它变成工作bash的列表。
后台和作业控制列表不一样。Bash 将其所有后台进程放入其作业控制列表(默认情况下),但进程可以在后台运行而不放入列表中。只有 bash 可以将作业放入其列表中。
该-bg
选项可能有优势(我不知道是什么)。例如ssh
的后台选项,在要求输入密码后将其置于后台。