linux让命令或程序在终端后台运行的方法(Ubuntu/Fedora/Centos等一样适用)

引言

我们在用SecureCRT等终端工具远程登录时,很多时候需要执行一个程序,但是希望程序在用户注销或终端关闭后,能够继续在后台运行。下面介绍几种方法还有注意事项:

方法1:命令后面加&

一般情况下在命令后面加&,然后回车执行,就可以了:

xxx@ceph2:/var/www/html/doc$ node server &

方法2:运行命令后再按ctrl+z

如果你的命令是要执行一个不退出的程序,例如:

xxx@ceph2:/var/www/html/doc$ node server

那么它就会一直阻塞控制台,不能输入其他命令了。
这时候想让这个程序转到后台运行的话,按ctrl+z便能使其转到后台运行;可以释放控制台做其他操作了。

方法3:使用bg命令

如果在你进行操作之前,程序早就已经在前台运行了的话,要找回这个程序,先输入jobs,查看要找回的程序,记住左边的编号;再输入bg 编号,搞定。

xxx@ceph2:/var/www/html/doc$ jobs
[1]+  已停止               sudo node server
xxx@ceph2:/var/www/html/doc$ bg 1

特别要注意的一点

涉及到用户权限的命令,如果要放后台运行,必须先运行这个命令,再ctrl+z放到后台。

不能直接后面加&:

xxx@ceph2:/var/www/html/doc$ sudo node server &

必须去先执行命令:

xxx@ceph2:/var/www/html/doc$ sudo node server
[sudo] password for xxx: 输入密码

然后再按ctrl+z将程序放到后台运行

原因很简单,因为在输命令后还需要确认一次密码,想直接加&就会让程序自己后台运行的话,岂不大bug也?
这也是网上很多教程文章等等的忽略的一点,忘记提醒刚接触linux的读者,让大家走了好多弯路,例如曾经的我,哈哈哈。

    原文作者:小神游
    原文地址: https://segmentfault.com/a/1190000008314935
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞