Linux 后台执行程序/命令

在Linux下,我们有时候希望命令或者程序能够在后台执行,从而能够同时处理其他事情。
下面将介绍几种将程序切换至后台执行的方式,每一种的行为和表现均有所差异。

后台运行

Ctrl+z

如果一个命令已经在terminal中运行了,通过Ctrl+z,我们可以将程序切换至后台暂停挂起

➜  ~ netease-cloud-music
^Z
[1]  + 8636 suspended  netease-cloud-music

然后使用bg命令,就可以让后台的程序继续执行:

➜  ~ bg
[1]  + 8636 continued  netease-cloud-music

通过jobs命令,可以查看到后台有哪些程序在运行。

➜  ~ jobs
[1]  + running    netease-cloud-music

如果想让程序继续回到前台执行,使用fg命令即可。

➜  ~ fg
[1]  + 8636 running    netease-cloud-music

command &

通过在命令后加&方式命令 &启动程序,我们可以直接将程序在后台运行。

如何彻底切换至后台

上述几个方式,虽然可以将程序从terminal中切换至后台,但实际上程序还是和当前terminal关联,如果将terminal关闭,程序也会跟着终止。如果想要程序脱离当前terminal运行,可以通过一下两种方式:

disown

通过运行disown命令,可以将程序job和从terminal jobs中剔除,这时候即使关闭terminal,程序也会继续运行。
这时候无论是jobs命令、fg命令都不会再生效。

nohup

我们也可以在程序运行时候,通过nohup command &,直接运行程序,即使shell终端退出,程序也会继续执行。

参考资料

https://www.tecmint.com/run-linux-command-process-in-background-detach-process/

你可能感兴趣的:(Linux 后台执行程序/命令)