引言
我们在用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的读者,让大家走了好多弯路,例如曾经的我,哈哈哈。