Linux后台执行
使命令在后台执行
将&
加在一个命令的最后,可以把这个命令放到后台执行,但退出终端时会停止执行。
python test.py &
如果希望退出终端继续执行,可以在前面加上nohup
nohup python test.py &
这样会使程序的输出重定向到当前目录的nohup.out文件中,如果不需要,可以用/dev/null
来解决
nohup python test.py > /dev/null &
将前台命令调至后台执行
Ctrl + Z
可以将一个正在前台执行的命令放到后台,并且处于暂停状态。
此时使用jobs
命令,会显示后台命令编号、状态等信息。
用fg [后台命令编号]
命令,可以将一个后台命令调至前台继续执行。
用bg [后台命令编号]
命令,可以使一个暂停状态的后台命令在后台继续执行,但退出终端时会停止执行。
如果希望退出终端继续执行,可以执行下面这条命令:
disown -h %[后台命令编号]
终止后台命令
方式一:可以用fg
命令将进程调至前台,用Ctrl + C
使其终止
方式二:使用kill命令+后台命令编号,这种方式要求后台命令属于当前终端
kill %[后台命令编号]
方式三:用ps
命令查出进程的PID,再使用kill
命令
ps -aux | grep "test.py"
kill -s 9 [PID]
对于在其他终端执行的命令,只能用第三种方式处理。
Reference
linux后台运行和关闭、查看后台任务
Linux 技巧:让进程在后台运行更可靠的几种方法
linux重定向及nohup不输出的方法
发表评论