欢迎来我的个人博客:fizzyi
在学习Python的过程中,有几次都遇到程序跑到一半就必须关机的情况,今天跑爬虫数据量太大需要跑几个小时,于是上网搜索的一下资料。
&
当前台运行某个程序时,终端被占用,想做一些其他事情无法做的时候,可以在命令后面加上&实现后台运行。
例如:python3 run.py &
在后台运行时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会一直等待输入,但是你又没有地方输入。不过,这种方法后台运行一样会将结果输出到屏幕上,干扰工作。如果放在后台运行的工作会产生大量的输出,最好使用下面的方法把它的输出重定向某个文件中。
command > out.file 2>&1 &
当成功提交一个进程后,就会显示出一个进程号,可以用它来监控该进程,或者杀死它。
ps -ef | gerp 进程号
#或者
kill -9 进程号
nohup
使用&命令后,程序被提交到后台运行,当前终端没有被占用,但是一旦把当前控制台关掉,程序就会停止运行。
而nohup命令可以在你退出控制台后继续运行相应的进程。
Nohup 就是不挂起的意思 no hang up
一般形式为:
nohup command &
如果使用nohup命令来执行程序,那么在缺省情况下该程序的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件
nohup command > outfile.file 2>&1 &
指令解析:
- Command > outfile.file 是将command的输出重定向到outfile.file文件,即输出内容不打印到屏幕上,而是输出到outfile.file文件中。
- 2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了outfile.file文件,即将标准出错也输出到outfile.file中。最后一个&,是让该命令在后台执行。
网友评论