美文网首页
linux后台执行命令 &和nohup

linux后台执行命令 &和nohup

作者: Fizz翊 | 来源:发表于2018-11-23 01:02 被阅读10次

欢迎来我的个人博客: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中。最后一个&,是让该命令在后台执行。

相关文章

网友评论

      本文标题:linux后台执行命令 &和nohup

      本文链接:https://www.haomeiwen.com/subject/myldqqtx.html